大家好我在绘制条形图时遇到此错误而我无法摆脱它,我已经尝试了qplot和ggplot但仍然是同样的错误。
以下是我的代码
library(dplyr)
library(ggplot2)
#Investigate data further to build a machine learning model
data_country = data %>%
group_by(country) %>%
summarise(conversion_rate = mean(converted))
#Ist method
qplot(country, conversion_rate, data = data_country,geom = "bar", stat ="identity", fill = country)
#2nd method
ggplot(data_country)+aes(x=country,y = conversion_rate)+geom_bar()
错误:
stat_count() must not be used with a y aesthetic
data_country中的数据
country conversion_rate
<fctr> <dbl>
1 China 0.001331558
2 Germany 0.062428188
3 UK 0.052612025
4 US 0.037800687
错误出现在条形图中而不是虚线图表中。任何建议都会有很大的帮助
答案 0 :(得分:110)
首先,你的代码有点偏。 aes()
中的ggplot()
是一个参数,您不能使用ggplot(...)
+ aes(...) + layers
其次,来自帮助文件?geom_bar
:
默认情况下,geom_bar使用stat =&#34; count&#34;这使得高度 酒吧比例与每组病例数(或重量 提供了aethetic,权重的总和)。如果你想要高度 用于表示数据中值的条形图,使用stat =&#34; identity&#34;和 将变量映射到y审美。
你想要第二种情况,其中条的高度等于conversion_rate
所以你想要的是......
data_country <- data.frame(country = c("China", "Germany", "UK", "US"),
conversion_rate = c(0.001331558,0.062428188, 0.052612025, 0.037800687))
ggplot(data_country, aes(x=country,y = conversion_rate)) +geom_bar(stat = "identity")
结果:
答案 1 :(得分:2)
当要使用数据框中存在的数据作为y值时,必须在映射参数中添加stat =“ identity”。函数geom_bar具有默认的y值。例如,
ggplot(data_country)+
geom_bar(mapping = aes(x = country, y = conversion_rate), stat = "identity")
答案 2 :(得分:2)
您可以直接使用geom_col()。在此链接https://ggplot2.tidyverse.org/reference/geom_bar.html
中查看geom_bar()和geom_col()之间的区别geom_bar()使条形的高度与每个组中的案例数成正比。如果要使条形的高度表示数据中的值,请改用geom_col()。
ggplot(data_country)+aes(x=country,y = conversion_rate)+geom_col()
答案 3 :(得分:0)
我一直在寻找相同的商品,这可能也有用
p.Wages.all.A_MEAN <- Wages.all %>%
group_by(`Career Cluster`, Year)%>%
summarize(ANNUAL.MEAN.WAGE = mean(A_MEAN))
名称(p.Wages.all.A_MEAN) [1]“职业集群”“年度”“年度平均工资”
p.Wages.all.a.mean <- ggplot(p.Wages.all.A_MEAN, aes(Year, ANNUAL.MEAN.WAGE , color= `Career Cluster`))+
geom_point(aes(col=`Career Cluster` ), pch=15, size=2.75, alpha=1.5/4)+
theme(axis.text.x = element_text(color="#993333", size=10, angle=0)) #face="italic",
p.Wages.all.a.mean