0

私はggplot2で作成された少し複雑なプロットを持っています。X 軸は各ポイントの名前を持ち、Y 軸はそれらの値を持ちます。これらを表すために geom_point を使用しました。また、プロットの各ポイントに誤差範囲を追加しました。

ここで、このデータのサンプルを表すために異なる線種で geom_hline のみを使用するプロットを重ね合わせました (最初のデータ フレームとは異なりますが、X 軸と Y 軸を共有しています)。これらの水平線の偏差を示したいと思います。また、水平線の偏差をどのように表現するかについてのインスピレーションを探しています。

エラーバーを追加しようとしましたが、Xaxis に追加のサンプルとして表示され、理想的ではありません。そもそもそれは実現可能なアイデアですか?

これは、hlines でどのように見えるかであり、エラーバーは X 軸上の余分なポイントとして表示されます。 ここに画像の説明を入力

編集:似たようなことをしようとしている人にインスピレーションを与える場合のコードのスニペット

p <- ggplot(df_sample_dots, aes(x=Names, y=Values), show.legend = TRUE) + geom_point(size=5, aes(color=factor(Names))) +
        geom_errorbar(aes(ymin=Values-dev, ymax=Values+dev), width=.2, position=position_dodge(.9), color="black")

p <- p + geom_hline(aes(yintercept=Values, linetype=Names), data=df_sample_hlines, show.legend = TRUE, color="black") + 
        geom_errorbar(aes(ymin=Values-dev, ymax=Values+dev), data = df_sample_hlines, color="thistle4", width=1, size=1)
4

1 に答える 1

1

このようなものはどうですか:

library(ggplot2)
library(dplyr)

set.seed(12345)

toPlot <-
  data.frame(
    group = factor(sample(LETTERS[1:10],1000,TRUE))
  ) %>%
  mutate(value = rnorm(1000) + 
           as.numeric(group)/10)

basePlot <-
  ggplot(toPlot) +
  stat_summary(aes(x = group
                   , y = value)
               , fun.data = mean_cl_normal) +
  theme_minimal()

basePlot

lineAdd <-
  data.frame(
    x = range(as.numeric(toPlot$group)) + c(-.5,.5)
    , ymax = 1.2
    , ymin = 0.8
  )

basePlot +
  geom_ribbon(
    data = lineAdd
    , mapping = aes(x = x
                    , ymax = ymax
                    , ymin = ymin)
    , col = "light gray"
    , alpha = 0.2
  ) +
  geom_hline(yintercept = 1)

各行を手動で追加 (およびリボンのデータを生成) する必要がありますが、その入力データセットが一貫している場合は、それも自動化できる可能性があります。

ここに画像の説明を入力

于 2016-07-05T14:37:54.533 に答える