geom_bar ggplot2のバーの並べ替え


119

私は、プロットがmiRNA最も高いものvalueからmiRNA最も低いものへと並べられている棒グラフを作ろうとしています。コードが機能しないのはなぜですか?

> head(corr.m)

        miRNA         variable value
1    mmu-miR-532-3p      pos     7
2    mmu-miR-1983        pos    75
3    mmu-miR-301a-3p     pos    70
4    mmu-miR-96-5p       pos     5
5    mmu-miR-139-5p      pos    10
6    mmu-miR-5097        pos    47

ggplot(corr.m, aes(x=reorder(miRNA, value), y=value, fill=variable)) + 
  geom_bar(stat="identity")

回答:


216

バープロットが低から高に並べられていることを除いて、コードは正常に機能します。バーを高い順に並べたい場合は、-前に記号を追加する必要がありますvalue

ggplot(corr.m, aes(x = reorder(miRNA, -value), y = value, fill = variable)) + 
  geom_bar(stat = "identity")

それは与える:

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


使用されたデータ:

corr.m <- structure(list(miRNA = structure(c(5L, 2L, 3L, 6L, 1L, 4L), .Label = c("mmu-miR-139-5p", "mmu-miR-1983", "mmu-miR-301a-3p", "mmu-miR-5097", "mmu-miR-532-3p", "mmu-miR-96-5p"), class = "factor"),
                         variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "pos", class = "factor"),
                         value = c(7L, 75L, 70L, 5L, 10L, 47L)),
                    class = "data.frame", row.names = c("1", "2", "3", "4", "5", "6"))

何らかの理由で私のプロットで注文されません
user3741035

@ user3741035奇妙です。上記で提供したサンプルデータセットまたはデータセット全体で使用しましたか?
Jaap

R&ggplotのどのバージョンを使用していますか?また、より大きなサンプルデータセット(できればに複数の値を指定variable)を指定できますか?
Jaap

6
解決策を見つけました:混乱させるライブラリ(gplots)をロードしました
user3741035

1
@mayccaそれは私に正しい結果を与えています(OSX 10.10.4 / Windows 7、R 3.2.3&ggplot2 2.1.0の両方で)。たぶん、あなたは新しいセッションから始めるべきですか?
Jaap
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.