如何将散点图中的点标签输出到bash控制台

时间:2015-10-22 13:24:09

标签: r bash plot

我有一个简单的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中)。

怎么办?

1 个答案:

答案 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返回识别更多点,但立即打印出标签。

显然你会创建其他标签而不仅仅是字母。