Salut les gars, je reçois cette erreur en traçant un graphique à barres et je ne parviens pas à m'en débarrasser. J'ai essayé à la fois qplot et ggplot mais toujours la même erreur.
Voici mon code
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()
Erreur:
stat_count() must not be used with a y aesthetic
Données dans data_country
country conversion_rate
<fctr> <dbl>
1 China 0.001331558
2 Germany 0.062428188
3 UK 0.052612025
4 US 0.037800687
L'erreur vient dans l'histogramme et non dans le graphique en pointillé. Toutes les suggestions seraient d'une grande aide
Tout d'abord, votre code est un peu éteint. aes()
est un argument dans ggplot()
, vous n'utilisez pas ggplot(...)
+ aes(...) + layers
Deuxièmement, à partir du fichier d’aide ?geom_bar
:
Par défaut, geom_bar utilise stat = "count", ce qui fait la hauteur du barre proportion au nombre de cas dans chaque groupe (ou si la pondération est fournie, la somme des poids). Si vous voulez les hauteurs des barres pour représenter les valeurs dans les données, utilisez stat = "identity" et mapper une variable à l'esthétique y.
Vous voulez le deuxième cas, où la hauteur de la barre est égale au conversion_rate
Donc, ce que vous voulez, c'est ...
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")
Résultat:
lorsque vous souhaitez utiliser vos données existantes dans votre trame de données en tant que valeur y, vous devez ajouter stat = "identity" dans le paramètre de mappage. La fonction geom_bar a la valeur y par défaut. Par exemple,
ggplot(data_country)+
geom_bar(mapping = aes(x = country, y = conversion_rate), stat = "identity")
Je cherchais le même et cela peut aussi marcher
p.Wages.all.A_MEAN <- Wages.all %>%
group_by(`Career Cluster`, Year)%>%
summarize(ANNUAL.MEAN.WAGE = mean(A_MEAN))
noms (p.Wages.all.A_MEAN) [1] "Cluster de carrière" "Année" "ANNUAL.MEAN.WAGE"
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