2017-12-18 11 views
3

現在、joychartを作成するために、ggridgesライブラリを使用しています。私はこれを書いた:R(joyplot)のggridgesを使用した周期的エラー

data3 %>% 
    mutate(ftFct = fct_rev(as.factor(ft_newnum))) %>% 
    ggplot(aes(y = ftFct)) + 
    geom_density_ridges(aes(x = ft, fill = paste(ftFct, rep)), 
         alpha = .8, color = "white", from = 0, to = 100) + 
    labs(x = "Feeling Themometer Responses (%)", 
    y = " ", 
    title = "Republican vs Democratic Views Towards...", 
    subtitle = "Analysis unit: students (n = 595)") + 
    scale_y_discrete(expand = c(0.01, 0)) + 
    scale_x_continuous(expand = c(0.01, 0)) + 
    scale_fill_cyclical(breaks = c("2 0", "2 1"), 
         labels = c(`2 0` = "Democrat", `2 1` = "Republican"), 
         values = c("#8080ff", "#ff8080", "#0000ff", "#ff0000"), 
         name = "Political Affiliation", guide = "legend") + 
    theme_ridges(grid = FALSE) 

...私にこの数字を取得している:

enter image description here

これは私がしたい正確に何である - 完璧なフォーマット、暗い色と明るい色の間の各ライン交互に、提供しますいくつかのコントラストと読みやすさが向上しました。

次に、y軸の変数にラベルを付けて、私たちが見ているものを知るようにします。私は、次のような 'ft_newnum' レーベル:

data3$ft_newnum <- factor(data3$ft_newnum, 
         levels = c(2,3,4,5,6,7,9,11,12, 13, 14, 15), 
         labels = c("Donald Trump", "Christian fundamentalists", "Elites", 'Republicans', 'Denison Republicans', 'Denison Greeks', 'Denison Varsity Athlete','Hillary Clinton', 'Denison Democrats', 'Democrats', 'Bernie Sanders', 'Weinberg')) 

そして、この変更を組み込むために、コードを編集します。

data3 %>% 
    mutate(ftFct = fct_rev(as.factor(ft_newnum))) %>% 
    ggplot(aes(y = ftFct)) + 
    geom_density_ridges(aes(x = ft, fill = paste(ftFct, rep)), 
         alpha = .8, color = "white", from = 0, to = 100) + 
    labs(x = "Feeling Themometer Responses (%)", 
     y = " ", 
     title = "Republican vs Democratic Views Towards...", 
     subtitle = "Analysis unit: students (n = 595)") + 
    scale_y_discrete(expand = c(0.01, 0)) + 
    scale_x_continuous(expand = c(0.01, 0)) + 
    scale_fill_cyclical(breaks = c("Donald Trump 0", "Donald Trump 1"), 
         labels = c(`Donald Trump 0` = "Democrat", `Donald Trump 1` = "Republican"), 
         values = c("#8080ff", "#ff8080", "#0000ff", "#ff0000"), 
         name = "Political Affiliation", guide = "legend") + 
    theme_ridges(grid = FALSE) 

そのコードプロットこの図を:

enter image description here

それはほとんどです完璧ですが、問題は明るい色と暗い色の交互点が消えていることです。最初の2本の線は暗い色が続き、2本の淡い色の線が続きます。私はラベルを保持する必要があるだけでなく、最初の図に見られるように正確な周期的な変更を維持する必要があります。

アイデア?ありがとう!

+1

あなたは、再現性の例を与えることができますか?あなたはそのような良い答えを得る可能性がはるかに高いです。 – Axeman

答えて

2

ああ、私はそれを理解しました。 'ft_newnum'変数を上書きする代わりに、新しい変数(ft_newnum2)を作成します。

data3$ft_newnum2 <- factor(data3$ft_newnum, 
         levels = c(2,3,4,5,6,7,9,11,12, 13, 14, 15), 
         labels = c("Donald Trump", "Christian fundamentalists", "Elites", 'Republicans', 'Denison Republicans', 'Denison Greeks', 'Denison Varsity Athlete','Hillary Clinton', 'Denison Democrats', 'Democrats', 'Bernie Sanders', 'Weinberg')) 

ft_num2元ft_numステープロットを充填するために使用される、y軸を設定するために使用されています。

data3 %>% 
    mutate(ftFct = fct_rev(as.factor(ft_newnum2))) %>% 
    ggplot(aes(y = ftFct)) + 
    geom_density_ridges(aes(x = ft, fill = paste(ft_newnum, rep)), 
         alpha = .8, color = "white", from = 0, to = 100) + 
    labs(x = "Feeling Themometer Responses (%)", 
     y = " ", 
     title = "Republican vs Democratic Views Towards...", 
     subtitle = "Analysis unit: students (n = 595)") + 
    scale_y_discrete(expand = c(0.01, 0)) + 
    scale_x_continuous(expand = c(0.01, 0)) + 
    scale_fill_cyclical(breaks = c("2 0", "2 1"), 
         labels = c(`Donald Trump 0` = "Democrat", `Donald Trump 1` = "Republican"), 
         values = c("#8080ff", "#ff8080", "#0000ff", "#ff0000"), 
         name = "Political Affiliation", guide = "legend") + 
    theme_ridges(grid = FALSE) + 
    theme(legend.position="bottom") 

enter image description here

関連する問題