【发布时间】:2016-08-15 02:39:00
【问题描述】:
我有一个字符向量(在本例中为十六进制颜色)。
somePalette <- structure( c( "#F6B436", "#4D86A0","#672767"),
.Names = c("Yellow", "Blue", "Purple")
)
pie(c(1,1,1),col=somePalette)
从这个向量中,我希望选择一些元素传递给另一个向量(在这种情况下,用作values= 的参数ggplot2::scale_color_manual)。
cols <- c("setosa" = somePalette["Yellow"],
"versicolor" = somePalette["Blue"],
"virginica" = somePalette["Purple"])
# This doesn't work
ggplot(iris, aes(x = Sepal.Width, y = Sepal.Length, col = Species)) +
geom_point(size=5) +
scale_color_manual(values=cols)
似乎我尝试分配的元素名称已更改,具体取决于我传递的元素的索引:
> print(cols)
setosa.Yellow versicolor.Blue virginica.Purple
"#F6B436" "#4D86A0" "#672767"
以下解决方法会产生所需的输出:
# This works, though
cols2 <- c("setosa" = "#F6B436",
"versicolor" = "#4D86A0",
"virginica" = "#672767")
ggplot(iris, aes(x = Sepal.Width, y = Sepal.Length, col = Species)) +
geom_point(size=5) +
scale_color_manual(values=cols2)
为什么会发生这种重命名? (如果它不是错误,将非常感谢提供有关此行为的文档链接。)阻止它发生的最简单方法是什么?
【问题讨论】:
标签: r