2017-02-20 17 views
2

私は、シンボルを水平にして基底Rに凡例をプロットしようとしており、次の行のシンボルの下に対応するラベルを描いています。凡例は余白にプロットされます(サンプルデータには含まれません)。 legend()関数でこれを解決するためにグラフィカルなパラメータを使う方法はありますか?それ以外の場合は、テキストラベルを試してみますが、私はより管理しやすい方法を選んでいます。凡例シンボルとラベルをRの別の行にプロットする方法はありますか?

私は、この例のデータを持っている:

plot(c(1,2,3,4,5), c(1,2,3,4,5), xlim=c(0,5), ylim=c(0,5), main = "", xlab = "", ylab = "") 

legendEntries <- c(0.05, 0.1, 0.15, 0.2, 0.25) # which values in legend 
legendSizes <- sqrt(legendEntries/pi) * 10 # calculate pch size 
legend(1, 2, title="", horiz = T, legend=legendEntries, col="black", pch=rep(21,5), 
    pt.bg = "#ff166c", pt.cex = legendSizes, bty = "n") 

そして、このような何か作りたい:

legend example

感謝を!

ポール

(編集:テキストや余分な情報に追加された画像)

答えて

0

あなたが個別にポイントして、テキストをプロットすることができます。

ような何か:プロット領域の外側をプロットするための

# Make the basic plot 
    plot(c(1,2,3,4,5), c(1,2,3,4,5), xlim=c(0,5), ylim=c(0,5), main = "", xlab = "", ylab = "") 
    # set up the legend entries and sizes 
    legendEntries <- c(0.05, 0.1, 0.15, 0.2, 0.25) # which values in legend 
    legendSizes <- sqrt(legendEntries/pi) * 10 # calculate pch size 

# plot the legend points 
    points(y = rep(1, 5), x = seq(3,4, 0.25), pch = 21, cex = sqrt(legendEntries/pi) * 10, 
      bg = "#ff166c") 
# plot the text 
    text(y = rep(0.7, 5), x = seq(3,4, 0.25), 
     labels = legendEntries) 

(すなわちマージン上に)、あなたはxpd = TRUEとしてXPDパラメータを使用することができます。

plot(c(1,2,3,4,5), c(1,2,3,4,5), xlim=c(0,5), ylim=c(0,5), main = "", xlab = "", ylab = "") 

legendEntries <- c(0.05, 0.1, 0.15, 0.2, 0.25) # which values in legend 
legendSizes <- sqrt(legendEntries/pi) * 10 # calculate pch size 

points(y = rep(-0.8, 5), x = seq(1,2, 0.25), pch = 21, cex = sqrt(legendEntries/pi) * 10, 
     bg = "#ff166c", xpd = TRUE) 
text(y = rep(-1, 5), x = seq(1,2, 0.25), 
    labels = legendEntries, xpd = TRUE) 
+0

おかげで、私はしようとしていますプロット余白に凡例をプロットする。これはプロット領域でのみ機能するようです。私は "テキストをプロットする"部分を凡例()と組み合わせることができますが、私はそれを解決するためにグラフィカルなパラメータを使う方法があることを期待していました。 – user134303

+0

編集を参照してください私の答え – ira

+0

ニース、ありがとう。私はそれを使って作業することができます。私が望む伝説は基本的なものなので、私は本当にlegend()関数は必要ありません。 – user134303

関連する問題