我正在使用ggplot和以下数据绘制箱线图:
plot_data <- structure(list(group = c("a1", "a1", "a1", "a2", "a2", "a2", "b1", "b1", "b1", "b2", "b2", "b2"), value = c(1, 2, 3, 1, 2, 3, NA, NA, NA, 1, 2, 3)), .Names = c("group", "value"), row.names = c(NA, -12L), class = "data.frame")
以下代码:
ggplot(data = plot_data, aes(x = group, y = value))+
geom_boxplot(fill= c('blue','blue','green','green'))+
theme_classic()
这会导致此错误:
Error: Aesthetics must be either length 1 or the same as the data (3): fill
发生错误是因为一个组只有NA
个值。 ggplot
在x
轴上显示了这个组,我喜欢但却抱怨填充空箱图。
我可以通过删除其中一个填充参数来修复它。
然而,由于我在循环内多次使用绘图函数,因此有时某些组的值仅为NA
,因此这并不可行。我知道,我可以根据数据中包含的组动态创建填充向量,但我希望它不变。
所以我的问题是:
是否有可能使用相同的填充向量,ggplot没有任何抱怨?喜欢另一种选择吗?