>Rで棒グラフを作る時に最大値、最小値のみ他と色を変えるには
→
棒グラフを作成す方法に幾つかあります。
代表的なのが
(a)barplot ...Rに標準実装された棒グラフ機能(baseR)
(b)ggplot2 ...tidyverseパッケージ群
調べてみたら、最近は、ggplot2 の方が多いみたいです。
※
RGui , RStudio 何方でも同じです。
以下のスクリプトを貼り付けて[改行]でグラフが表示されます。
~~ [ベースR(barplot)] ~~
# データ
values \u0026lt;- c(5, 8, 3, 10, 6)
# 最大・最小のインデックス
max_index \u0026lt;- which.max(values)
min_index \u0026lt;- which.min(values)
# 色ベクトルを作成(全てグレー、最大は赤、最小は青)
colors \u0026lt;- rep(\u0026quot;gray\u0026quot;, length(values))
colors[max_index] \u0026lt;- \u0026quot;red\u0026quot;
colors[min_index] \u0026lt;- \u0026quot;blue\u0026quot;
# 棒グラフ描画
barplot(values, col = colors)
~~ [library(ggplot2)] ~~
library(ggplot2)
# データフレーム化
df \u0026lt;- data.frame(
category = factor(1:5),
value = c(5, 8, 3, 10, 6)
)
# 最大・最小を判定する列を追加
df$color \u0026lt;- \u0026quot;normal\u0026quot;
df$color[which.max(df$value)] \u0026lt;- \u0026quot;max\u0026quot;
df$color[which.min(df$value)] \u0026lt;- \u0026quot;min\u0026quot;
# 色指定
ggplot(df, aes(x = category, y = value, fill = color)) +
geom_bar(stat = \u0026quot;identity\u0026quot;) +
scale_fill_manual(values = c(\u0026quot;max\u0026quot; = \u0026quot;red\u0026quot;, \u0026quot;min\u0026quot; = \u0026quot;blue\u0026quot;, \u0026quot;normal\u0026quot; = \u0026quot;gray\u0026quot;))
━