0

いくつかのインデックスデータを棒グラフとしてプロットしています。x軸を100で交差させることにより、数値の「インデックスより上」と「インデックスより下」を強調したいと思います(80の値は-20バーとして表示されます)。

これははるかに長いプロセスの一部であるため、データを有効に共有することは困難です。ただし、ここに問題(および私の解決策の始まり)を説明するいくつかの厄介なコードがあります:

df <- data.frame(c("a","b","c"),c(118,80,65))
names(df) <- c("label","index")

my.plot <- ggplot(df,aes(label,index))
my.plot + geom_bar()

df$adjusted <- as.numeric(lapply(df$index,function(x) x-100))

my.plot2 <- ggplot(df,aes(label,adjusted))
my.plot2 + geom_bar()

もちろん、インデックスの計算を次のように変更することもできます。(value.new/value.old)*100-100次に、チャートに適切なタイトルを付けます(「インデックスに対するxxx」など)が、これは不器用に思えます。

それで、私がテストしてきたアプローチもありますか(上記の簡単な計算を実行してから、y軸にラベルを付け直します)。それは本当に最良の解決策ですか?

間違いなく、この種の軸操作は嫌われていると誰かが私に言うでしょう。もしそうなら、説明の方向に私を向けてもらえますか?少なくともその時、私は何かを学びました。

4

2 に答える 2

5

これはあなたの質問に直接答えるものではありませんが、x 軸を見逃す代わりに、1 つのグリッド線を少し太くしてみませんか? 例えば、

dd = data.frame(x = 1:10, y = runif(10))
g = ggplot(dd, aes(x, y)) + geom_point()
g + geom_hline(yintercept=0.2, colour="white", lwd=3)

ここに画像の説明を入力

または、ポールが提案したように、黒い線といくつかのテキストを使用します。

    g + geom_hline(yintercept=0.2, colour="black", lwd=3) + 
        annotate("text", x = 2, y = 0.22, label = "Reference")

ここに画像の説明を入力

于 2012-07-17T08:43:57.833 に答える
1

プロットの座標系には、x軸とy軸が(0,0)で交差しています。これは、座標系を定義する方法です。もちろん、(x = 100)で水平線を引くこともできますが、これをx軸と呼ぶのは誤りです。

すでに提案しているのは、データを変換して座標系を再定義することです。この変換が適切であるかどうかは、再現可能な例を使用して答える方が簡単です。

于 2012-07-17T08:45:37.850 に答える