gpt4 book ai didi

r - 创建一个 fiddle 图,其中 fiddle 图和箱线图在 ggplot2 中具有不同的颜色

转载 作者:行者123 更新时间:2023-12-05 04:13:46 29 4
gpt4 key购买 nike

我正在尝试创建一个分组的 fiddle 图(见图),我在其中为四个分类变量绘制了 3 个级别。考虑到这些数据,除了盒子与后面更宽的 fiddle 图颜色相同使它们难以查看这一事实外,该图效果很好。理想情况下,我希望所有的盒子始终保持白色。我知道盒子改变颜色的原因是响应我选择的 fill 。我想知道是否有办法将 geom_violin 的填充与 geom_boxplot 分开。

这是我使用的精简代码

p <- ggplot(df, aes(x=metric, y=value, fill=variable))+
geom_violin(width=0.9, position=position_dodge(0.75), bw=1.5)+
geom_boxplot(width=0.3, outlier.shape = NA, position=position_dodge(0.75))+
scale_fill_manual(values=c("gray50", "gray75", "gray100"),
breaks=c("res.error.random", "res.error.increase", "res.error.decrease"),
labels=c("random cost", "overestimated", "underestimated"))

Example of the plot I am creating

最佳答案

一切都取决于你在哪里写 fill :

  • ggplot(aes()) 内部:将关注所有新层。
  • geom_boxplot(aes()) 内部:只涉及这一层。

将它写在 aes 中很重要,特别是如果你想稍后使用 scale_fill_manual()

这里是生成数据的完整答案:

df <- data.frame(var1 = sample(c("A", "B", "C"), 50, replace =T),
var2 = sample(c("group1", "group2", "group3"), 50, replace =T),
value = sample(c(1,2,3,4,5,6,7,8,9,10), 50, replace =T))

1.boxplotviolin 颜色相同 [ggplot(aes(fill =))]:

ggplot(df, aes(x=var1, y=value, fill = var2, group = interaction(var1,var2))) +
geom_violin(width=0.9, position=position_dodge(0.75), bw=1.5) +
geom_boxplot(width=0.3, outlier.shape = NA, position=position_dodge(0.75))

enter image description here


2.不同颜色 [geom_violin(aes(fill =))] :

ggplot(df, aes(x=var1, y=value, group = interaction(var1,var2)))+
geom_violin(width=0.9, position=position_dodge(0.75), bw=1.5, aes(fill = var2))+
geom_boxplot(width=0.3, outlier.shape = NA, position=position_dodge(0.75), fill = "white")

enter image description here

关于r - 创建一个 fiddle 图,其中 fiddle 图和箱线图在 ggplot2 中具有不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36855598/

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