我有一个简单的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
中)。
怎么办?
答案 0 :(得分:3)
identify
功能可让您点击点,并返回点击的点的索引值,该值可用于对标签矢量进行子集化。
为了在悬停时进行识别(而不是点击),您可以查看TeachingDemos包中的HTKidentify
函数。
修改强>
以下是使用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
返回识别更多点,但立即打印出标签。
显然你会创建其他标签而不仅仅是字母。