当我尝试使用colour = ""
或fill = """
分配颜色时,图形的颜色总是变为相同的颜色(某种奇怪的橙色色调(。我使用的具体代码是:Plot <- ggplot(data, aes(ymin = 0)) + geom_rect(aes(xmin = left, xmax = right, ymax = a, colour = "#FDFEFE"))
。以前有人遇到过这个问题吗?不管我使用的是颜色名称还是HTML代码,结果都是一样的。非常感谢。
我只是想添加一些解释,因为当我开始使用ggplot时,这也让我感到困惑。
一些玩具数据:
data <- tibble(a = 1:10, left = 1:10 * 20, right = 1:10 * 20 + 10)
正如@stefan所解释的,你需要在美学之外设置硬编码的颜色:
ggplot(data, aes(ymin = 0)) +
geom_rect(aes(xmin = left, xmax = right, ymax = a), fill = "#FDFEFE")
美学的目的是将绘图链接到数据表。当你写这篇文章时:
ggplot(data, aes(ymin = 0)) +
geom_rect(aes(xmin = left, xmax = right, ymax = a, fill = "#FDFEFE"))
这就像拥有以下内容:
data <- tibble(a = 1:10, left = 1:10 * 20, right = 1:10 * 20 + 10, col = "#FDFEFE")
ggplot(data, aes(ymin = 0)) +
geom_rect(aes(xmin = left, xmax = right, ymax = a, fill = col))
除了ggplot理解"#FDFEFE";作为分类值,而不是颜色。具有"#FDFEFE";或";香蕉;与ggplot:相同
ggplot(data, aes(ymin = 0)) +
geom_rect(aes(xmin = left, xmax = right, ymax = a, fill = "banana"))
或
data <- tibble(a = 1:10, left = 1:10 * 20, right = 1:10 * 20 + 10, col = "banana")
ggplot(data, aes(ymin = 0)) +
geom_rect(aes(xmin = left, xmax = right, ymax = a, fill = col))
为分类数据指定默认颜色。
另外,如果您想为表中的不同条目指定特定的颜色,最好使用scale_*_manual图层:
data <- tibble(a = 1:10, left = 1:10 * 20, right = 1:10 * 20 + 10,
col = sample(c("banana", "orange", "coconut"), 10, replace = T))
ggplot(data, aes(ymin = 0)) +
geom_rect(aes(xmin = left, xmax = right, ymax = a, fill = col)) +
scale_fill_manual(values = c("banana" = "yellow2", "orange" = "orange2", "coconut" = "burlywood4"))
如果你想对表中的颜色进行硬编码,你必须在美学之外使用这一列:
data <- tibble(a = 1:10, left = 1:10 * 20, right = 1:10 * 20 + 10,
col = sample(c("yellow2", "orange2", "burlywood4"), 10, replace = T))
ggplot(data, aes(ymin = 0)) +
geom_rect(aes(xmin = left, xmax = right, ymax = a), fill = data$col)
但最好使用有意义的分类值,并在比例层中指定颜色。这就是图形语法的全部内容!