gpt4 book ai didi

r - 仅更改 ggplot 中一根条的颜色

转载 作者:行者123 更新时间:2023-12-03 03:01:58 25 4
gpt4 key购买 nike

我只想为 ggplot 中的一个条形图着色。这是我的数据框:

area <- c("Północ", "Południe", "Wschód", "Zachód")
sale <- c(16.5, 13.5, 14, 13)
df.sale <- data.frame(area, sale)
colnames(df.sale) <- c("Obszar sprzedaży", "Liczba sprzedanych produktów (w tys.)")

以及绘图代码:

plot.sale.bad <- ggplot(data=df.sale, aes(x=area, y=sale, fill=area)) +
geom_bar(stat="identity") +
scale_fill_manual(values=c("black", "red", "black", "black")) +
xlab(colnames(df.sale)[1]) +
ylab(colnames(df.sale)[2]) +
ggtitle("Porównanie sprzedaży")

我只想有一个彩色条,另外 3 个条具有默认颜色(深灰色,而不是黑色,这对我来说看起来很糟糕)。如何仅更改条形的颜色或如何获取条形默认颜色的名称以将其代替黑色?

最佳答案

如果您喜欢在 ggplot 调用中包含所有内容,可以在 factor() 中使用 ifelse 语句进行填充,如下所示。

这还将图例分为两类(即突出显示和不突出显示),这样您就不会重复 x 轴上显示的值。这也为图例中的图提供了另一个说明性维度。

plot.sale.bad2 <- ggplot(data=df.sale,
aes(x=area,
y=sale,
fill=factor(ifelse(area=="Południe","Highlighted","Normal")))) +
geom_bar(stat="identity") +
scale_fill_manual(name = "area", values=c("red","grey50")) +
xlab(colnames(df.sale)[1]) +
ylab(colnames(df.sale)[2]) +
ggtitle("Porównanie sprzedaży")

plot.sale.bad2

Plot with legend

如果不需要图例,您可以将 show.legend = FALSE 添加到 geom_bar() 调用中以生成以下内容:

Plot without legend

关于r - 仅更改 ggplot 中一根条的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22894102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com