2016-04-23 5 views
1

私は2つの変数を持つデータセットを持っています。 2)連合政府か時間をかけずに(バイナリ)。バイナリ変数を%でプロットする

ggplotを使用して、私がX軸上の国と連立政権(Y = 1)を持つ年の割合を持つ棒グラフをプロットしたいと考えています。各国は合計100%にする必要があります。それらに同じサイズをもたらす。

基本的には、この質問(Create stacked barplot where each stack is scaled to sum to 100%)で求められるのと同じプロットですが、私は2つの結果(連立政権かどうか)を持っていて、5つではありません。

私は質問への答えの指示に従いますが、私はこのコードを使用して、添付unsuccesfulプロットを得る:

ggplot(data,aes(x = countryname, y = alliance,fill = alliance)) + 
    geom_bar(position = "fill",stat = "identity") + 
    scale_y_discrete(labels = percent_format()) 

私は私が間違っているのかわからない、と私はそうしようとしています今はさまざまなものがあります。誰でも助けてくれますか?

enter image description here

+1

ようこそStackOverflow! [良い質問をする方法](http://stackoverflow.com/help/how-to-ask)と[再現可能な例を与える方法](http://stackoverflow.com/questions/)の情報をお読みください。 5963269/how-to-make-a-great-r-reproducible-example/5963610を参照)。これは他の人があなたを助けることをはるかに容易にします。 – Jaap

+0

データフレームに問題があります。元の回答をもう一度読んで、その解決策をより注意深く見てください。それは "y =値"(溶湯で作成された値列)で、 "y = ind"ではなく "y =値"が使用されていることに注意してください。 – patrickmdnet

+0

ありがとうございます。私はリンクに従っていくつかのことを変えました。しかし、今、私は次のエラーを取得する: 私が使用し コードがある「エラー:美学は、いずれかの長さ1またはデータ(29160)と同じにする必要があり、X、Y、塗りつぶし」: dat.m < - geom_bar(stat = 'identity') "Alliance"は次のとおりです。バイナリ変数(0または1は、その年の国が連立政権を結成したかどうかによって異なります。 – champlos

答えて

1

私が試してみて、あなたの説明に一致するように、いくつかのランダムなデータを生成することでお答えします。うまくいけば、あなたのニーズに合わせてこの例を再利用できます。

# Sample data set 
year <- 1990:2016 

n <- length(year) 
country <- rep(c("US", "Canada", "England", "France", "Germany"), each = n) 
govt <- sample(c(1, 0), size = length(country), replace = T) 

df <- data.frame(country, year = rep(year, times = 5), govt) 
head(df) 

# Create summary 
library(ggplot2) 
library(dplyr) 
library(reshape2) 

df.plot <- df %>% 
    group_by(country) %>% 
    summarize(coalition = sum(govt)/n(), 
      non.coalition = 1-coalition) 

# Check 
rowSums(df.plot[,-1]) 

# Now plot 
df.plot %>% 
    melt() %>% 
    ggplot(aes(x = country, y = value, fill = variable)) + geom_bar(stat = "identity", position = "stack") + 
    xlab("Country") + 
    ylab("Percent Coalition/Non Coalition") + 
    scale_fill_discrete(guide = guide_legend(title = "Type of Govt.")) 
関連する問題