8

バーが水平線の上にプロットされるバープロットを作成したいと思います。

次のコードはこれを実現します。

y <- c(1,2,3,5)
barplot(y)
abline(h=mean(y))
barplot(y, add=T)

add=Tただし、 のパラメータをbarplot()繰り返し使用すると、印刷アーティファクトが発生する可能性があることが懸念されます。上記のコードに代わる方法があるかどうか興味があります (ただし、上記のコードが最速の方法かもしれません)。

4

2 に答える 2

14

最初の呼び出しで何もプロットできません。

y <- c(1,2,3,5)
barplot(
  rep(NA, length(y)),
  ylim = pmax(range(y), 0),
  axes = FALSE
)
abline(h = mean(y))
barplot(y, add = TRUE)

必要に応じて、棒の後ろに水平線がある棒グラフ

于 2012-11-28T04:34:16.017 に答える
9

ggplot2 を使用している場合、これについて心配する必要はありません。あなたの問題はgeomの順序に要約されます:

ggplot(data.frame(x=1:4, y=y), aes(x=x, y=y)) + 
    geom_bar(stat="identity") + 
    geom_hline(yintercept=mean(y), color="red")

前線

比較において:

ggplot(data.frame(x=1:4, y=y), aes(x=x, y=y)) + 
    geom_hline(yintercept=mean(y), color="red") +
    geom_bar(stat="identity")

後ろの列

于 2012-11-28T04:09:48.447 に答える