128

データ:

df <- data.frame(
    type   = c("T", "F", "P", "T", "F", "P", "T", "F", "P", "T", "F", "P"), 
    size   = c("50%", "50%", "50%", "100%", "100%", "100%", "150%", "150%", "150%", "200%", "200%", "200%"),
    amount = c(48.4, 48.1, 46.8, 25.9, 26, 24.9, 21.1, 21.4, 20.1, 20.8, 21.5, 16.5)
)

ggplotを使用して上記のデータの棒グラフをプロットする必要があります(x軸-> type、y軸-> amount、group by size)。次のコードを使用した場合、データに示されている順序typeと同様に変数を取得していません。size図をご覧ください。そのために次のコードを使用しました。

 ggplot(df, aes(type, amount , fill=type, group=type, shape=type, facets=size)) + 
  geom_col(width=0.5, position = position_dodge(width=0.6)) + 
  facet_grid(.~size) + 
  theme_bw() + 
  scale_fill_manual(values = c("darkblue","steelblue1","steelblue4"), 
                    labels = c("T", "F", "P"))

ここに画像の説明を入力してください

順序の問題を修正するために、以下を使用して変数「type」のfactorメソッドを使用しました。図もご覧ください。

temp$new = factor(temp$type, levels=c("T","F","P"), labels=c("T","F","P")) 

ここに画像の説明を入力してください

ただし、変数の順序を修正する方法がわかりませんsize。50%、100%にする必要があります。150%、および200%。

4

5 に答える 5

179

次の方法で、サイズをデータフレームの要素にします。

temp$size_f = factor(temp$size, levels=c('50%','100%','150%','200%'))

次に、をに変更facet_grid(.~size)しますfacet_grid(.~size_f)

次にプロットします。 ここに画像の説明を入力

グラフが正しい順序になりました。

于 2013-01-10T17:48:50.230 に答える
20

さらに少ない操作: facet_grid(~fct_relevel(size,'50%','100%','150%','200%'))

于 2021-03-11T07:33:19.317 に答える