1. ホーム
  2. r

[解決済み] ggplot における制御点の境界線の太さ

2023-04-11 06:20:39

質問

ggplotを使用する際に shape を 21-25 に設定すると、内部で独立した設定を持つ図形が得られます ( fill ) とボーダー ( col )の色を、このようにします。

df <- data.frame(id=runif(12), x=1:12, y=runif(12))
ggplot(df, aes(x=x, y=y)) + 
  geom_point(aes(fill=id, size=id), colour="black", shape=21)

<イグ

しかし、シェイプの境界線の太さを制御する方法がわかりません。絶対的に設定するか、美的マッピングとして設定するかのどちらかです。 私は、もし私が lwd 値を設定すると size を上書きします。

ggplot(df, aes(x=x, y=y)) + 
  geom_point(aes(fill=id, size=id), colour="black", shape=21, lwd=2)

<イグ

ボーダーの太さをコントロールするには?

どのように解決するのですか?

バージョン 2.0.0 以降の ggplot2 から、点の境界線の太さを制御するための引数があります。 この引数は NEWS.md ファイルから

geom_point() は、形状21-25の境界幅を制御するストロークの美学を獲得しました (#1133, @SeySayux)。サイズとストロークが加算されるので、サイズ = 5、ストローク = 5のポイントは、直径10mmを持つようになります。(#1142)

よって、これに対する正しい解答は、現在では

df <- data.frame(id=runif(12), x=1:12, y=runif(12))
ggplot(df, aes(x=x, y=y)) + 
  geom_point(aes(fill=id, size=id), colour="black", shape=21, stroke = 2)