1

ggplot2を使用して竜巻図を作成する方法を探しています。geom_linerangeの例は次のようになります。

library(ggplot2)
dmod <- lm(price ~ cut, data=diamonds)
cuts <- data.frame(cut=unique(diamonds$cut),
          predict(dmod, data.frame(cut = unique(diamonds$cut)),
          se=TRUE)[c("fit","se.fit")])
se <- ggplot(cuts, aes(cut, fit, ymin = fit - se.fit,
        ymax=fit + se.fit, colour = cut))+ geom_linerange(size=2) + coord_flip()
se

ただし、線は長さの降順、つまり一番上の範囲が最も広い範囲で並べ替える必要があります。これを達成する方法がわかりません。

ありがとうございました、

トニ

4

1 に答える 1

2

因子のプロット順序を変更するには、因子レベルの順序に変更する必要があります。これを行うにはいくつかの方法があります。を使用してファクターを再作成することを好みfactor(..., levels=new_levels)ます。あなたの場合、cuts$se.fitを使用してレベルを並べ替えたいと思います。

次のコードは少し醜いですが、それは仕事を成し遂げます:

cuts$cut = factor(as.character(cuts$cut), 
                  levels=levels(cuts$cut)[order(cuts$se.fit, decreasing=TRUE)])

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

于 2013-02-24T18:34:23.050 に答える