1

R グラフのプロットの幅とブレーク数を等しくするのに問題があります。

現在、私は

hist(result1,xlim=c(2,4),breaks=10)
abline(v=pi,col="red")
hist(result2,xlim=c(2,4),breaks=10)

同じ軸番号のバーと同じ幅のバーを使用して、2 つのグラフを重ね合わせようとしています。

奇妙なことに、breaks = 10 に設定すると、上部のグラフに下部よりも多くのバーが表示され、幅が等しくないことがあります。休憩パラメータを正しく理解していませんか?

4

3 に答える 3

3

ggplot2ファセットの使用は、この種のプロットに最適だと思います。いくつかのデータを作成しましょう:

carat1 = diamonds
carat1$id = "one"
carat2 = diamonds
carat2$id = "two"
carat2 = within(carat2, { carat = carat * 1000 })
carat_comb = rbind(carat1, carat2)

プロットを作成しましょう:

ggplot(aes(x = carat), data = carat_comb) + 
    geom_histogram() + facet_wrap(~ id, ncol = 1)

ここに画像の説明を入力

x軸がかなり異なる場合にこのプロットを機能させるには、軸の値を個別に決定できることをggplotに伝えます。

ggplot(aes(x = carat), data = carat_comb) + geom_histogram() + 
    facet_wrap(~ id, ncol = 1, scales = "free_x")

ここに画像の説明を入力

于 2013-03-06T22:02:41.963 に答える
3

次のように、2 つのヒストグラムを重ねてプロットしていると思います。

par(mfrow=c(2,1))

固定休憩については、次のことをお勧めします。

bins <- seq(2, 4, by=0.1)

hist(results1, breaks=bins, xlim=c(2,4))
hist(results2, breaks=bins, xlim=c(2,4))
于 2013-03-06T21:59:56.963 に答える
2

あなたが説明する問題も対処するのが難しいといつも思っていました. それでも、ggplot2グラフィック バージョンを使用するとうまくいく可能性があります。

library('ggplot2')
qplot(x = carat, data = diamonds, geom = "histogram", binwidth = 0.1)

このアプローチがうまくいく場合は、次のようにして、上下に 2 つのプロットを取得できます。

library('grid')
a <- qplot(x = carat, data = diamonds, geom = "histogram", binwidth = 0.1)
b <- qplot(x = carat, data = diamonds, geom = "histogram", binwidth = 0.1)

vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y)
grid.newpage()
pushViewport(viewport(layout = grid.layout(2, 1)))
print(a, vp = vplayout(1,1))
print(b, vp = vplayout(2,1))
于 2013-03-06T21:46:27.183 に答える