私は、グループ化されたバイオリンプロットを作成しようとしています(ここでは、4つのカテゴリ変数について3つのレベルをプロットしています。このボックスは、見ることが困難になっている後ろの広いバイオリンプロットと同じ色であるという事実以外のデータを考慮すると、プロットはうまくいく。理想的には、すべてのボックスを全体的に白く保つことを望みます。私はボックスが色を変えている理由は、 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"))
回答:
回答№1は1すべてあなたが書く場所に依存します 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.同色 boxplot
そして violin
[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))
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")