颜色不会显示在使用 ggplot2 的条形图中



当我尝试使用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)

但最好使用有意义的分类值,并在比例层中指定颜色。这就是图形语法的全部内容!

最新更新