13

ヒストグラムをプロットするために使用しているデータがいくつかあります。また、いくつかの重要性を持つ2セットのしきい値があります。

適切なスタイルでヒストグラムとvlinesをプロットすることができます。ただし、vlinesを凡例に表示させることができません。このようなものはうまくいくはずですが、凡例のアイテムは表示されません。

df <- data.frame(val=rnorm(300, 75, 10))

cuts1 <- c(43, 70, 90)
cuts2 <- c(46, 79, 86)

ggplot(data=df, aes(x=val)) +
  geom_histogram() +
  geom_vline(xintercept=cuts1,
             linetype=1,
             color="red",
             labels="Thresholds A",
             show_guide=TRUE) +
  geom_vline(xintercept=cuts2,
             linetype=2,
             color="green",
             labels="Thresholds B",
             show_guide=TRUE)

または、カット用にdata.frameを作成し、美的マッピングを行うと、vlinesを凡例に表示できます。残念ながら、凡例では、異なる線種の2つのインスタンスが互いに重ね合わされています。

cuts1 <- data.frame(Thresholds="Thresholds A", vals=c(43, 70, 90))
cuts2 <- data.frame(Thresholds="Thresholds B", vals=cuts2 <- c(46, 79, 86))

ggplot(data=df, aes(x=val)) +
  geom_histogram() +
  geom_vline(data=cuts1, aes(xintercept=vals, shape=Thresholds),
             linetype=1,
             color="red",
             labels="Thresholds A",
             show_guide=TRUE) +
  geom_vline(data=cuts2, aes(xintercept=vals, shape=Thresholds),
             linetype=2,
             color="green",
             labels="Thresholds B",
             show_guide=TRUE)

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

したがって、最終的に、私が探しているのは、プロットに2セットの線を手動で追加し、それらを凡例に正しく表示させる最も簡単な方法です。

4

1 に答える 1

24

秘訣は、しきい値データをすべて同じデータフレームに配置し、それらを設定するのではなく、美学をマッピングすることです。

cuts <- rbind(cuts1,cuts2)

ggplot(data=df, aes(x=val)) +
  geom_histogram() +
  geom_vline(data=cuts, 
             aes(xintercept=vals, 
                 linetype=Thresholds,
                 colour = Thresholds),
             show_guide = TRUE)

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

于 2012-09-22T17:30:04.540 に答える