gpt4 book ai didi

R ggplot 改变堆积条形图中一个变量的颜色

转载 作者:行者123 更新时间:2023-12-04 19:57:46 26 4
gpt4 key购买 nike

我有一个数据框 D看起来像这样:

Track <- c(0,0,0,-1,1,1)
Length <- c(1,1,2,1,3,1)
Legend <- c("A","B","A","C","B","C")
D <- data.frame(Track,Length,Legend)

D
# Track Length Legend
# 0 1 A
# 0 1 B
# 0 2 A
# -1 1 C
# 1 3 B
# 1 1 C

我目前正在使用此代码来绘制它:
ggplot(Z, aes(x=Track, y=Length, fill=Legend)) +
geom_bar(stat='identity') + geom_point() + expand_limits(x=0,y=0) +
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(), axis.line = element_line(colour = "black"))

图形如下所示:
enter image description here

但是我想将白色分配给变量 B。这种操作可能吗?此外,为了简单起见,我在这篇文章中使用了虚拟数据。我将使用的实际数据在 Legend 下可能有 10 个或更多不同的变量,因此写出每个十六进制颜色看起来不是一个干净的选项。

感谢您的帮助

最佳答案

这会产生你所追求的吗?

x <- length(levels(factor(Legend)))
x.colors <- hcl(h=seq(15,375,length=(x+1)),l=65,c=100)[1:x]
x.colors[x] <- "white"

ggplot(D, aes(x=Track, y=Length, fill=Legend)) +
geom_bar(stat='identity',colour="black") + geom_point() + expand_limits(x=0,y=0) +
scale_fill_manual(values=x.colors) +
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(), axis.line = element_line(colour ="black"))

我加了 scale_fill_manual()为 A、B 和 C 分配颜色。我还添加了 colour="black"geom_bar() .你可以试试有没有第二部分,看看你的想法。

关于R ggplot 改变堆积条形图中一个变量的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31527635/

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