2016-11-29 6 views
2

は私のデータとコードです:なぜggplot2はfacet_gridを使ってプロットを分割できませんでしたか?ここ

a <- data.frame(Original = c("Full", "Full", "T0", "T0"), 
      Classified = c("Full", "T0", "Full", "T0"), 
      Value = c(0.69, 0.31, 0.32, 0.68), 
      Text = c("69%", "31%", "32%", "68%")) 


ggplot(data = a, aes(x=Classified, y=Original, fill=Value)) + 
    geom_tile()+ 
    geom_text (aes (label=Text), size = 15)+ 
    scale_fill_gradient(low="light blue", high="purple")+ 
    facet_grid (Original~Classified, space = "free", switch = "y")+ 
    theme_bw()+ 
    ggtitle ("ADS")+ 
    theme (panel.background = element_blank())+ 
    theme (plot.background = element_blank())+ 
    theme (panel.grid.major = element_line(colour = "white"))+ 
    ylab ("Percentage of Tokens")+ 
    theme (strip.text = element_text(size = 23))+ 
    theme (axis.title = element_text (size = 25))+ 
    theme(plot.title = element_text(size=25))+ 
    theme (legend.position = "none")+ 
    theme (axis.title.x = element_blank()) 

それは次のようSTHを生成するのはなぜ? 4つのパネルの4つのプロットを完全に埋める必要があります。

+1

あなたのコード 'facet_grid(Original〜Classified、space =" free "、switch =" y "、scales =" free ")のfacet instedにこれを使ってください。ファセットグリッドはすべてのプロットで同じスケールを使用しており、これが表示されたプロットを取得している理由です。 –

+0

まさに、facet_gridにscales = 'free'を追加する必要があります。 –

答えて

0

問題は軸とファセットの両方にClassifiedOriginalがあることから発生します。これを修正するには2つの方法があります。この問題を解決するために

  • 一つの方法は、バルターBeaković とsandipanのコメントで提案され、それが facet_gridscales = "free"を追加しています。彼らはただ ファセットラベルと同じ情報を与えているので、軸は、冗長になってしまうので、私たちは別のオプションは、ないコールClassifiedになり、いくつかのより多くのtheme通話

  • を追加することにより、 にそれらを削除することができますし、 Original
    xyと呼びますが、代わりに定数を呼び出します(たとえば
    "1")。軸は無意味なので、今度は
    をもう一度削除してください。

    ggplot(data = a, aes(x=Classified, y=Original, fill=Value)) + 
        geom_tile()+ 
        geom_text (aes (label=Text), size = 15)+ 
        scale_fill_gradient(low="light blue", high="purple")+ 
        facet_grid (Original~Classified, space = "free", switch = "y", scales = "free")+ 
        theme_bw()+ 
        ggtitle ("ADS")+ 
        theme (panel.background = element_blank())+ 
        theme (plot.background = element_blank())+ 
        theme (panel.grid.major = element_line(colour = "white"))+ 
        ylab ("Percentage of Tokens")+ 
        theme (strip.text = element_text(size = 23))+ 
        theme (axis.title = element_text (size = 25))+ 
        theme(plot.title = element_text(size=25))+ 
        theme (legend.position = "none")+ 
        theme (axis.title.x = element_blank()) + 
        theme (axis.text = element_blank()) + 
        theme (axis.ticks = element_blank()) 
    

    及び第二のオプションについては、以下のコード:

これは、最初のオプションのために、次のコードを与える

ggplot(data = a, aes(x="1", y="1", fill=Value)) + 
    geom_tile()+ 
    geom_text (aes (label=Text), size = 15)+ 
    scale_fill_gradient(low="light blue", high="purple")+ 
    facet_grid (Original~Classified, space = "free", switch = "y")+ 
    theme_bw()+ 
    ggtitle ("ADS")+ 
    theme (panel.background = element_blank())+ 
    theme (plot.background = element_blank())+ 
    theme (panel.grid.major = element_line(colour = "white"))+ 
    ylab ("Percentage of Tokens")+ 
    theme (strip.text = element_text(size = 23))+ 
    theme (axis.title = element_text (size = 25))+ 
    theme(plot.title = element_text(size=25))+ 
    theme (legend.position = "none")+ 
    theme (axis.title.x = element_blank()) + 
    theme (axis.text = element_blank()) + 
    theme (axis.ticks = element_blank()) 

同じプロット内の両方の結果:

enter image description here

関連する問題