是否可以使用字符和数字的混合作为R图例中的绘图符号?
plot(x=c(2,4,8),y=c(5,4,2),pch=16)
points(x=c(3,5),y=c(2,4),pch="+")
legend(7,4.5,pch=c("+",16),legend=c("A","B")) #This is the problem
答案 0 :(得分:10)
使用“+”字符的等效数字:
plot(x=c(2,4,8),y=c(5,4,2),pch=16)
points(x=c(3,5),y=c(2,4),pch="+")
legend(7,4.5,pch=c(43,16),legend=c("A","B"))
答案 1 :(得分:6)
我的第一个想法是绘制图例两次,一次打印字符符号,一次打印数字符号:
plot(x=c(2,4,8),y=c(5,4,2),pch=16)
points(x=c(3,5),y=c(2,4),pch="+")
legend(7,4.5,pch=c(NA,16),legend=c("A","B")) # NA means don't plot pt. character
legend(7,4.5,pch=c("+",NA),legend=c("A","B"))
注意:奇怪的是,这适用于R的原生图形设备(在Windows上)和pdf()
,但不适用于bmp()
或png()
设备。
答案 2 :(得分:5)
实际上所有符号都有数字等价物!
来源:Dave Roberts
pch代码是上图中Y和X坐标的 concatenation 。
+
符号位于行(Y)4和列(X)3中,因此可以使用pch = 43绘制。示例:
plot(x=c(2,4,8),y=c(5,4,2),pch=16)
points(x=c(3,5),y=c(2,4),pch="+")
legend(7,4.5,pch=c(43,16),legend=c("A","B"))
答案 3 :(得分:3)
答案 4 :(得分:0)
在以前的答案中,如noted所示,您只需添加要绘制的数字和字符符号的numerical equivalent即可。
然而,只是一个相关的旁边:如果你想绘制更大的数字(例如,> 100)或字符串(例如,'ABC')作为符号,你需要使用一个完全不同的方法,基于使用{{1 }}。
text()
在这种情况下创建一个图例更加复杂,我所能想到的最好的方法是将图例叠加在一起,并使用`Plot(x,y,dat,type='n') ; text(x,y,labels = c(100,'ABC')
参数同时使用{{} 1}}符号和说明:
legend