我有一个简单的 R 脚本:
args <- commandArgs(TRUE)
inp <- read.csv(args[1],sep="\t",header=FALSE,stringsAsFactors=FALSE)
firstCol <- inp$V2
secondCol <- inp$V3
pdf(args[2])
plot(firstCol,secondCol,xlab="#",ylab="maxLength")
dev.off()
我从 bash 脚本运行它来生成基本图。
现在我想使用 X11()
直接绘制到窗口中,而不是绘制到 PDF 中。
我现在想要的是将鼠标悬停在某个点上或单击该点时,在控制台上显示每个点的标签(在 inp$V1
中)。
怎么办?
最佳答案
identify
函数允许您单击点,它会返回单击的点的索引值,该索引值可用于对标签向量进行子集化。
要在悬停(而不是单击)时进行识别,您可以查看 HTKidentify
功能在TeachingDemos包中。
编辑
这是一个使用 identify
的示例这可能是你想要的(我在 Windows 上测试过它,而不是 unix/X11):
x <- runif(26)
y <- rnorm(26)
plot(x,y)
while(length(tmp <- identify(x,y, plot=FALSE, n=1))) {
cat(letters[tmp],'\n')
}
plot=FALSE
告诉识别不要将标签放在图上,并且 n=1
告诉它在您单击 1 个点后返回(while
返回以识别更多点,但立即打印出标签)。
显然,您可以创建其他标签来使用而不仅仅是字母。
关于r - 如何将散点图中点的标签输出到bash控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33282116/