R - 如何使用一个向量的内容作为图中的符号?

I82*_*uch 6 plot r

我有两个相等长度的数字向量.如何在第二个向量中使用相应元素作为打印字符时绘制第一个向量?(背景:我对第一列进行了排序,第二列保存了原始索引.我想使用索引作为可打印字符,以便我可以看到哪些数据点是异常值,因为每个数字代表一次数据运行).

 > x
$x
 [1]   25   29   30   34   38  572  700  733  870  879  899  934  982 1054 1135 1258
[17] 1315 1491 1685 1700 2069 2131 2284 3498 3506 4467 4656 5633 6642 8348

$ix
 [1] 23  3 18 30 13  8  4 14 11 17 12 29  9 15 19 16  7  1 20  2  6 28 21 10  5 22 24 26
[29] 25 27
Run Code Online (Sandbox Code Playgroud)

第一个向量是x $ x,第二个向量是x $ ix(使用index.return = TRUE调用sort的结果)

我已经尝试过绘图(x $ x,pch = str(x $ ix))但是用数字处理x $ ix.如果这是Python,我会做类似strings = [str(x)for x in x $ ix]的东西.但这是R,我忘记了我以前知道的大部分内容.

我发现你可以做as.character(x $ ix)来获取字符串,

> as.character(x$ix)
 [1] "23" "3"  "18" "30" "13" "8"  "4"  "14" "11" "17" "12" "29" "9"  "15" "19" "16"
[17] "7"  "1"  "20" "2"  "6"  "28" "21" "10" "5"  "22" "24" "26" "25" "27"
Run Code Online (Sandbox Code Playgroud)

我可以用它作为pch的输入.但只使用了第一个字符(根据文档,这是正常的).

我知道有办法做到这一点; 我是在大学里做的.但我不能为我的生活记住我是如何做到的.

没有标签的图表: 替代文字http://i47.tinypic.com/2aep88.png

带有标签的图表,但不正确: 替代文字http://i50.tinypic.com/2cicxtu.png

dou*_*oug 10

这应该工作:

x = 1:4
y = x
plot(x, y, ann=F, axis=F, col="blue", pch=16)
text(x, y, labels=c("1st", "2nd", "3rd", "4th"), col="red", pos=c(3,4,4,1), offset=0.6)
Run Code Online (Sandbox Code Playgroud)

只需将非数据向量(包含标签的向量)转换为字符向量:labels = as.character(label_vector)

然后将其替换为上面第4行中的第三个参数.

'Text'功能相当通用,因为您可以传入各种参数 - 例如,(如上例所示)您可以使用"col"将文本设置为与数据点不同的颜色; 您还可以分别为每个文本标签指定位置(相对于由给定文本标签注释的数据点).例如,保持文本标签与其中一个轴重叠通常很有用,这就是我第一次运行这个例子而没有设置'pos'时发生的事情.因此,通过设置'pos'(作为c(3,4,4,1)),我将文本标签的位置设置为"上方","右侧","右侧"和"下方" - 移动第一个数据向上指向它不会击中底部的x轴,并向下移动第四个因此它不会击中顶部的x轴.此外,使用"偏移"(默认值为0.5),您可以指定位置调整的大小.