R で異なる色の凡例アイテムを描く

胡金庫 2023年1月30日
  1. legend 関数を使用して、R のプロットに凡例を追加する
  2. ダブルレジェンドコールを使用して、さまざまな色のレジェンドアイテムを描画する
R で異なる色の凡例アイテムを描く

この記事では、R でさまざまな色の凡例アイテムを描画する方法を示します。

legend 関数を使用して、R のプロットに凡例を追加する

legend 関数は、プロットに凡例オブジェクトを描画するために使用されます。凡例の位置を指定する最初の 2つの引数として、x および y 座標を取ります。ただし、"left""bottomright"などのキーワードを使用して指定できます。次のパラメーターは legend と呼ばれ、凡例に表示する必要のある文字のベクトルとして表されます。。この場合、三角形または円の形で示される線と点を描画します。線と点は色が異なるため、それに応じて凡例に表示する必要があります。次のコードスニペットは、凡例に図形とテキストのみを描画します。

library(ggplot2)

plot( 0, type = "n", xlim = c(0,5), ylim = c(0,5) )
A <- matrix( c( c(4,1,3,2), c(1,3,4,4)), ncol = 2 )
B <- matrix( c( c(1,4,3,2), c(1,3,1,1)), ncol = 2 )

lines( A, col = "brown" )
points( A, col = "blue", pch = 17 )
lines( B, col = "cyan" )
points( B, col = "purple", pch = 19 )


legend( x = "topleft",
        legend = c("Brown line, blue triangles","Cyan line, purple points"),
        col = c("blue","purple"), lwd = 2, lty = c(0,0),
        pch = c(17,19) )

r プロットの凡例 1

lty 引数ベクトルの値を増やすことで行を追加することもできます。1つは直線で途切れのない線に対応していることに注意してください。一方、pch 引数は、0:25 整数値にマップされるプロットシンボルを表し、points 関数のドキュメントで説明されています。

library(ggplot2)

plot( 0, type = "n", xlim = c(0,5), ylim = c(0,5) )
A <- matrix( c( c(4,1,3,2), c(1,3,4,4)), ncol = 2 )
B <- matrix( c( c(1,4,3,2), c(1,3,1,1)), ncol = 2 )

lines( A, col = "brown" )
points( A, col = "blue", pch = 17 )
lines( B, col = "cyan" )
points( B, col = "purple", pch = 19 )

legend( x = "topleft",
        legend = c("Brown line, blue triangles","Cyan line, purple points"),
        col = c("brown","cyan"), lwd = 1, lty = c(1,1),
        pch = c(17,19), merge = FALSE)

r プロットの凡例 2

ダブルレジェンドコールを使用して、さまざまな色のレジェンドアイテムを描画する

前の例では、同じ色の単一のアイテムの線と形状を表示しています。これは、legend 関数を 2 回呼び出すことで解決できます。各呼び出しは、線と形状を異なる色で別々に表示します。ただし、呼び出しの 1つには、legend パラメーターの空のベクトル値が必要です。

library(ggplot2)

plot( 0, type = "n", xlim = c(0,5), ylim = c(0,5) )
A <- matrix( c( c(4,1,3,2), c(1,3,4,4)), ncol = 2 )
B <- matrix( c( c(1,4,3,2), c(1,3,1,1)), ncol = 2 )

lines( A, col = "brown" )
points( A, col = "blue", pch = 17 )
lines( B, col = "cyan" )
points( B, col = "purple", pch = 19 )


legend( x = "topleft",
        legend = c("Brown line, blue triangles","Cyan line, purple points"),
        col = c("brown","cyan"), lwd = 1, lty = c(1,1),
       pch = c(NA,NA) )

legend( x = "topleft",
        legend = c("",""),
        col = c("blue","purple"), lwd = 1, lty = c(0,0),
        pch = c(17,19), bty= 'n')

r プロットの凡例 3

著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - R Plot