是否可以在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
Run Code Online (Sandbox Code Playgroud)
小智 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"))
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是绘制图例两次,一次打印字符符号,一次打印数字符号:
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"))
Run Code Online (Sandbox Code Playgroud)
注:奇怪的是,这部作品中的R的本地图形设备(Windows)在pdf()
,但不是在bmp()
或png()
设备...
实际上所有符号都有数字等价物!
资料来源:戴夫罗伯茨
pch代码是上图的Y和X坐标的串联.
+
符号在行(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"))
Run Code Online (Sandbox Code Playgroud)