3

facet_wrapを追加すると、qplotを使用したヒストグラムが変化する理由に頭を悩ませようとしています。この例で使用したデータはここにあります

私のfacet_gridの要素は、以下を使用することから来ていcutます。

library(ggplot2)
data <- read.csv("data.csv")
data$cuts <- cut(data$y, c(0, 50, 100, 500, Inf))

だから今私はこれを持っています:

> summary(data)
       y                 x                cuts    
 Min.   :  10.00   Min.   :0.000   (0,50]   :530  
 1st Qu.:  20.75   1st Qu.:1.000   (50,100] :179  
 Median :  46.00   Median :1.000   (100,500]:258  
 Mean   : 110.18   Mean   :0.834   (500,Inf]: 33  
 3rd Qu.: 121.00   3rd Qu.:1.000                  
 Max.   :1526.00   Max.   :1.000                  

のセクションだけを見ると、問題ないようcuts=="(0,50]"に見えます。

qplot(x, data=subset(data, cuts=="(0,50]"))

しかし、ファセットグリッドを追加すると、y軸はすべて間違っています。

qplot(x, data=data) + facet_grid(cuts~., scales="free_y")

上部ファセットのy軸が450を超えるのではなく、わずか40になっていることに注意してください。正しいと思われるファセットは。だけです(500,Inf]

編集:私はR2.14.2でggplot0.9.0を使用しています

4

2 に答える 2

3

ggplot 9.1 は 1 日かそこら前にリリースされ、これはそのパッケージ リリースで処理されました。したがって、私の答えは、ggplot2 0.9.1 バグ修正バージョンをダウンロードすることです。

また、次のようにright引数を操作することもできますgeom_histogramgeom_histogram(binwidth = 0.2, right = TRUE) +

于 2012-05-09T21:18:52.887 に答える
1

Sandyが示しているように、これはggplotfacet_gridの「重複行を無視する」バグのようです。簡単な回避策は、この何もしない行を追加することです。

data$index = seq.int(1,1000,1)

すべての行を一意にし、必要なものを取得します。

于 2012-05-09T20:15:26.830 に答える