3

plotrix の gap.barplot() 関数を使用していますが、一部の値が非常に小さい場合に問題が発生しています。次のデータフレームから始めます。

test.df <- data.frame(
perc = c(2.5,7.5,12.5,17.5,22.5,27.5,32.5,37.5,42.5,47.5,52.5,57.5,62.5,67.5,72.5,77.5,82.5,87.5,92.5,97.5), 
count = c(143649,30872,17444,11333,7513,5257,3677,2795,1976,1530,1022,916,862,985,808,339,59,2,1,1)
)

次のようにギャップのある棒グラフを作成すると:

library(plotrix)
gap.barplot(test.df$count, gap=c(38000,136000), xaxlab=test.df$perc, xtics=test.df$perc, ytics=c(0:30)*5000, col="white", las=1)

それはきれいに見えます。

ここに画像の説明を入力

ただし、次のコードを使用して、「カウント」値を 1000 で割ろうとすると:

gap.barplot(test.df$count/1000, gap=c(38,136), xaxlab=test.df$perc, xtics=test.df$perc, ytics=c(0:30)*5, col="white", las=1)

バーは 0 に固定されていません。

ここに画像の説明を入力

3000 (または新しいスケールでは 3) より大きいすべての「カウント」値は、ゼロより大きい場合でも下向きです。何らかの理由で、バーが 0 ではなく 3 に固定されています。なぜこれが発生するのか、どうすれば修正できるのかを知っている人はいますか?

4

1 に答える 1

1

これを調べただけです。この問題は、パッケージの新しいバージョンで修正されているようです。devtools パッケージから次のコマンドを使用して plotrix をインストールすると、正しいプロットを生成できました。

install_github("cran/plotrix")

ここに画像の説明を入力

コードを更新する前に、下の水平カットが次のコードで設定されているように見えます。

botgap <- ifelse(gap[1] < 0, gap[1], xlim[1])

最近、次のように更新されました。

botgap<-ylim[1]

あなたの例では、パッケージが botgap=2.5 を計算するのを見ていました (したがって、2.5 未満のすべての値は負のバーで表示されます) が、0 でそれを望んでいました。そのため、可能であれば、新しいバージョンを取得することをお勧めします。別のオプションは、正しいコードを使用して定義した新しい関数を作成することです。

自分で確認したい場合は、R コンソールで plotrix::gap.barplot を使用して、ダウンロードした関数を確認し、コードを github の新しいバージョンと比較できます

于 2016-12-30T18:29:37.953 に答える