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
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
「+」文字に相当する数値を使用します。
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"))
私の最初の考えは、凡例を2回プロットすることです。1回は文字記号を印刷し、もう1回は数字記号を印刷します。
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()
前の回答で述べたように、プロットする数値記号と文字記号に相当する数値を追加するだけです。
ただし、関連することは別として、より大きな数値(たとえば、> 100)または文字列(たとえば、'ABC')を記号としてプロットする場合は、の使用に基づいてまったく異なるアプローチを使用する必要がありますtext()
。
`Plot(x,y,dat,type='n') ; text(x,y,labels = c(100,'ABC')
この場合の凡例の作成はより複雑であり、私がこれまでに思いついた最善のアプローチは、凡例を互いに積み重ね、記号と説明のlegend
両方に引数をpch
使用することです。
pchs <- c(100,'ABC','540',sum(13+200),'SO77')
plot(1:5,1:5,type='n',xlim=c(1,5.1))
text(1:5,1:5,labels = pchs)
legend(3.5,3,legend = pchs,bty='n',title = '')
legend(3.5,3,legend = paste(strrep(' ',12),'ID#',pchs),bty='n',title='Legend')
rect(xleft = 3.7, ybottom = 1.5, xright = 5.1, ytop = 3)