Rで棒が並んでいる棒グラフ図を作成する方法


9

Rでこれらのデータの棒グラフを作成したい(CVSファイルから読み取った):

Experiment_Name MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20

次の図を作成します。

代替テキスト

私は初心者であり、開始する方法すら知りません。


1
?barplotのヘルプファイルの読み取りは、フォーラムへの投稿よりも速い場合があります...
RockScience

まず、棒グラフが関数barplotによって作成されていることを理解する必要があります...知らない場合、これはそれほど簡単ではありません。

これは質問に対する答えを提供しません。批評したり、著者に説明を求めるには、投稿の下にコメントを残してください。
kjetil b halvorsen 2014年

回答:


13

私はあなたがデータをRに、read.table()または簡略read.csv()関数でインポートできると仮定します。そして、あなたは、例えば、あなたが好きな要約機能を適用することができますtablemean以下のように、:

x <- replicate(4, rnorm(100))
apply(x, 2, mean)

または

x <- replicate(2, sample(letters[1:2], 100, rep=T))
apply(x, 2, table)

最終的には、表示するサマリー値のマトリックスまたはテーブルを作成することになります。

グラフィカルな出力についてはbarplot()、オプション付きの関数を見てくださいbeside=TRUE。例:

barplot(matrix(c(5,3,8,9),nr=2), beside=T, 
        col=c("aquamarine3","coral"), 
        names.arg=LETTERS[1:2])
legend("topleft", c("A","B"), pch=15, 
       col=c("aquamarine3","coral"), 
       bty="n")

space引数が並置されたバーの間に余分なスペースを追加するために使用することができます。

代替テキスト


13

ここでggplotバージョン:

library(ggplot2)
df = melt(data.frame(A=c(2, 10), B=c(3, 20), 
          experiment=c("X", "X & Y")),
          variable_name="metric")

ggplot(df, aes(experiment, value, fill=metric)) + 
       geom_bar(position="dodge")

代替テキスト


2
よろしくお願いしますが、コマンドの出力を追加しました。
csgillespie

@csgillespie問題ありません:)
teucer

1

reshape2を反映するようにteucerの回答を更新したいと思いました。

library(ggplot2)
library(reshape2)
df = melt(data.frame(A=c(2, 10), B=c(3, 20), 
                 experiment=c("X", "X & Y")),
      variable.name="metric")

ggplot(df, aes(experiment, value, fill=metric)) + 
  geom_bar(position="dodge",stat="identity")

teucerの回答では、reshape2がvariable_nameではなくvariable.nameを使用するため、reshape2で「エラーin eval(expr、envir、enclos):object 'metric' not found」というエラーが発生することに注意してください。

また、gem_bar関数にstat = "identity"を追加する必要があることもわかりました。そうしないと、「エラー:変数をyにマッピングし、stat = "bin"を使用する」というエラーが発生したためです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.