我得到了以下错误:
错误:
data
必须是数据帧,或其他可由fortify()
强制强制的对象,而不是一个具有gg/ggplot类的S3对象。
这是我的代码,它可以很好地处理不同的数据集:
household_income <- ggplot(household_income, aes(nationality, avg_income))
household_income +
geom_boxplot(aes(fill=factor(nationality))) +
geom_dotplot(binaxis='y',
stackdir='center',
binwidth = 1,
dotsize = .45,
fill="red") +
theme(axis.text.x = element_text(angle=0, vjust=.9))
我实际上是在复制Box_Dot plot 这里
发布于 2020-06-30 01:11:02
您还可以使用dplyr
中常用的管道(dplyr
)将数据传递给ggplot
。
以data.frame为例:
household_income = data.frame(
nationality =sample(1:5,100,replace=TRUE),
avg_income = rnbinom(100,mu=50,size=1)
)
不知道你的data.frame (所以请提供它使它成为一个最小的可复制的例子),对于geom_dotplot()
和boxplot()
覆盖,国籍必须是一个因素。下面我使用mutate()
对其进行分解。然后在方框图上设置一个较低的alpha值,以查看这些点:
library(ggplot2)
library(magrittr)
household_income %>%
mutate(nationality=factor(nationality)) %>%
ggplot(aes(nationality, avg_income))+
geom_boxplot(aes(fill=nationality),alpha=0.1) +
geom_dotplot(binaxis='y',stackdir='center',dotsize=0.45,fill='red') +
theme_bw()
https://stackoverflow.com/questions/62648683
复制相似问题