gpt4 book ai didi

r - ggplot 2有什么方法可以使用“识别”命令吗?

转载 作者:行者123 更新时间:2023-12-04 05:25:33 26 4
gpt4 key购买 nike

在这种情况下,一切正常:

x <- 1:10 
y <- x^3
plot(x, y)
identify(x, y)

但是,使用qplot有一些麻烦:
x <- 1:10 
y <- x^3
qplot(x, y)
identify(x, y)

有人知道类似的命令或其他方式来标记ggplot2图形中的特定点吗?

最佳答案

这是仅使用gridggplot2软件包的方法:

library(ggplot2)
library(grid)

x <- 1:10
y <- x^3
qplot(x, y)

downViewport('panel-3-4')
pushViewport(dataViewport(x,y))

tmp <- grid.locator('in')
tmp.n <- as.numeric(tmp)
tmp2.x <- as.numeric(convertX( unit(x,'native'), 'in' ))
tmp2.y <- as.numeric(convertY( unit(y,'native'), 'in' ))

w <- which.min( (tmp2.x-tmp.n[1])^2 + (tmp2.y-tmp.n[2])^2 )
grid.text(w, tmp$x, tmp$y )

如果您想要一个文本标签而不是数字,则可以使用类似 w(或所需的任何标签矢量)的方式替换对 grid.text的调用中的 letters[w]

如果要执行其中的几个操作,则可以将其包装在一个函数中,最后几行可能会循环。您也可以添加其他逻辑,以警告您是否未单击某个点(如identify那样)或将标签移至该点附近或远离该点(此版本将最近数据点的标签放置在您单击的位置) 。

关于r - ggplot 2有什么方法可以使用“识别”命令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10526005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com