web-dev-qa-db-ja.com

R ggplot2:stat_count()を棒グラフのy美的エラーと共に使用してはいけません

こんにちはみんな私は棒グラフをプロットしている間私はこのエラーを受けています、そして私はそれを取り除くことができません、私は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

点線ではなく棒グラフでエラーが発生しています。どんな提案でも大いに役立ちます

65
Uasthana

まず第一に、あなたのコードは少しオフです。 aes()ggplot()の引数です。ggplot(...) + aes(...) + layersは使用しないでください。

次に、ヘルプファイル?geom_barから:

デフォルトでは、geom_barはstat = "count"を使用します。これは、バーの高さを各グループのケース数に比例させます(または、ウェイトが指定されている場合はウェイトの合計)。棒の高さをデータ内の値を表すようにするには、stat = "identity"を使用して変数をy美的値にマップします。

あなたは、バーの高さがconversion_rateと等しい、2番目のケースが欲しいです。

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")

結果:

enter image description here

110
Chrisss

データフレームに存在するデータをy値として使用したい場合は、マッピングパラメータにstat = "identity"を追加する必要があります。関数geom_barはデフォルトのy値を持ちます。例えば、

ggplot(data_country)+
  geom_bar(mapping = aes(x = country, y = conversion_rate), stat = "identity")
2
user11366761

私は同じを探していたし、これもうまくいくかもしれない

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] "キャリアクラスター" "年" "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
0
Seyma Kalay