Rのグラフに複数のバープロットを描く[終了]


12

Rの1つのグラフに4つの棒グラフをプロットしたいと思います。次のコードを使用しました。ここで、どのように凡例をグラフの上に保持することができますか、具体的には凡例は2〜3のバープロットでなければなりません。私も試しましpar(mar=c(4.1,4.1,8.1,4.1)たが、成功していません。また、legend()2番目のバープロットを実行しようとしましたが、役に立ちません。凡例は、4つのバープロットすべてに対するものです。これで私を助けてください。

    par(mfrow=c(1,4))
    barplot(t(A), beside=T, ylim=c(-100,100),..)
    barplot(t(B), beside=T, ylim=c(-100,100),..)
    barplot(t(C), beside=T, ylim=c(-100,100),..)
    barplot(t(D), beside=T, ylim=c(-100,100),..)
    legend(...)

1
誰かがこれをRでタグ付けする
ブランドンバーテルセン

@Kevinこれは有効なQです。Rにコマンドラインインターフェイスがあるということは、Rの質問がプログラミングの質問であることを意味するものではありません。

@ブランドンシュア; 提案された編集を将​​来使用できます。また、承認された提案に対して2人の担当者を獲得できます。

回答:


17

博士マイクの答えは良いものですが、私はファセット(またはtrellising)を利用するの特長ソリューションを提供しようと思いましたggplot2し、をlattice。最初にデータを少し準備します。

mydata$id <- 1:nrow(mydata)
dat <- melt(mydata,id.vars = "id")

そして、次のようにすることができますggplot2

ggplot(dat,aes(x=factor(id), y = value)) + 
    facet_wrap(~variable) +
    geom_bar(aes(fill = factor(id)))

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

および使用lattice

barchart(~value|variable,group = factor(id),data=dat,
         key = simpleKey(text = as.character(1:5),
                rectangles = TRUE,points = FALSE,space = "right"))

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


@ブランドン-それは私の新しい使命です。これらの質問は、base、ggplot2、latticesの例を含む場合、他の人にとってより良い参考になります。
ジョラン

@ジョラン:素晴らしい。
サマラサ

ggplotバージョンで「factor(id)」のラベルの名前を変更するにはどうすればよいですか?
-News_is_Selection_Bias

11

最も簡単な解決策は、barplotコマンドの固有の機能を使用して問題を解決することだと思います。次のコードは、あなたがやりたいと私が解釈することを行います。

mydata <- data.frame(Barplot1=rbinom(5,16,0.6), Barplot2=rbinom(5,16,0.25),
                     Barplot3=rbinom(5,5,0.25), Barplot4=rbinom(5,16,0.7))
barplot(as.matrix(mydata), main="Interesting", ylab="Total", beside=TRUE, 
        col=terrain.colors(5))
legend(13, 12, c("Label1","Label2","Label3","Label4","Label5"), cex=0.6, 
       fill=terrain.colors(5))

プロット

これがあなたの質問に答えることを願っています。

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