名前付きベクトルを使用して ggplot2 の手動スケールで色を設定する場合、名前の 1 つとして変数を使用すると、色は最終的なプロットに表示されません。
library(ggplot2)
first_species <- 'setosa'
colours <- c(first_species = 'black',
'versicolor' = 'cadetblue',
'virginica' = 'hotpink')
ggplot(iris) +
aes(x = Petal.Length, y = Petal.Width, colour = Species) +
geom_point() +
scale_colour_manual(values = colours)
ただし、名前を使用して名前付きベクトルを作成すると、プロットは期待どおりに表示されます。
colours <- c('black', 'cadetblue', 'hotpink')
names(colours) <- c(first_species, 'versicolor', 'virginica')
ggplot(iris) +
aes(x = Petal.Length, y = Petal.Width, colour = Species) +
geom_point() +
scale_colour_manual(values = colours)
誰かが私にこの動作を説明できますか? 非標準評価に関連していると思われます(ggplot2は値ではなく名前を使用していますか?)。
手動スケール設定関数で変数を使用する最良の方法を提案していただければ幸いです。