2016-10-03 15 views
0

私は2つのデータフレームdataf1、dataf2を持っています。彼らは同じ構造と列を持っています。 3列の名前はA、B、Cです。そして彼らはどちらも50の行を持っています。 dataf1とdataf2にB列のヒストグラムをプロットしたいと思います。私は別々に2つのヒストグラムをプロットすることができますが、それらは同じスケールではありません。異なる色を使って同じヒストグラムに入れたり、同じスケールの2つのヒストグラムをプロットする方法を知りたいですか?同じ軸スケールで2つのヒストグラムをプロットする方法は?

ggplot() + aes(dataf1$B)+ geom_histogram(binwidth=1, colour="black",fill="white") 
ggplot() + aes(dataf2$B)+ geom_histogram(binwidth=1, colour="black", fill="white") 
+2

'AES()'の内側に '$'を使用しないでください!また、あなたの質問にコードを編集してください(書式で!)コメントで読むのは難しいです。 – Gregor

+0

ねえ、サンプルデータはありますか?多分データf1とデータf2の最初の数行? –

+0

理論的には、2つのデータフレームを一緒に結合し、f1/f2の列を追加するだけです。次に、その列名に色を設定してその列をグループ化します。これにより、同じグラフに両方が描画されます –

答えて

1

Zheyuanによれば、各プロットのy制限を設定して、それらを同じスケールで取得する必要があります。 ggplot2では、limsコマンドを使用する方法が1つあります(ただし若干異なりますが、scale_y_continuouscoord_cartesianでも動作します)。 決してを使用する必要がありますdata$column indside aes()。代わりに、データフレームにはdata引数を使用し、aes()には引用符で囲まれていない列名を使用してください。ここではいくつかの組み込みデータの例を示します。

p1 = ggplot(mtcars, aes(x = mpg)) + geom_histogram() + lims(y = c(0, 13)) 
p2 = ggplot(iris, aes(x = Sepal.Length)) + geom_histogram() + lims(y = c(0, 13)) 

gridExtra::grid.arrange(p1, p2, nrow = 1) 

enter image description here

二つの同じプロット上に2つのヒストグラムを取得し、最善の方法は、あなたのデータフレームを組み合わせることです。データは、元々から来たデータフレームマーキング新しい列を持つ単一のデータフレームにあなたのデータを組み合わせて

dataf = rbind(dataf1["B"], dataf2["B"]) 
dafaf$source = c(rep("f1", nrow(dataf1)), rep("f2", nrow(dataf2)) 

ggplot(dataf, aes(x = B, fill = source)) + 
    geom_histogram(position = "identity", alpha = 0.7) 
1

:あなたのデータがどのように見えるかを見ることなく推測、。次に、その新しい列をプロットの塗りつぶしの美しさに使用します。あなたは、サンプルデータを提供していない

data1$source="Data 1" 
data2$source="Data 2" 

dat_combined = rbind(data1, data2) 

は、ので、ここで内蔵のirisデータフレームを使用して、可能なプロットのいくつかの例です。以下のプロットにおいて、datdat_combinedに類似し、Petal.WidthBに類似し、Speciessourceに類似している。

dat = subset(iris, Species != "setosa") # We want just two species 

ggplot(dat, aes(Petal.Width, fill=Species)) + 
    geom_histogram(position="identity", colour="grey40", alpha=0.5, binwidth=0.1) 

ggplot(dat, aes(Petal.Width, fill=Species)) + 
    geom_histogram(position="dodge", binwidth=0.1) 

ggplot(dat, aes(Petal.Width, fill=Species)) + 
    geom_histogram(position="identity", colour="grey40", binwidth=0.1) + 
    facet_grid(Species ~ .) 

enter image description here

関連する問題