2017-03-22 5 views
0

最近の検索で私の質問に答えがありましたが、どれも私のために働いていませんでした。各グループの平均ラインを持つggplotを使用したジッタプロット

geom_jitter()を3つのグループでプロットし、各グループの平均ラインを追加したいと思います。これまでのところ、私は以下のコードを持っています。しかしそれはまだ良くありません。

次のグラフ生成さ
library(ggplot2) 
data("iris") 

iris.summary <- aggregate(. ~ Species, mean, data=iris) 

ggplot(iris, aes(x=Species, y=Sepal.Width, shape=Species)) + 
    geom_jitter(width=0.2) + geom_hline(data=iris.summary, size=1, 
    col="red", aes(yintercept=Sepal.Width)) 

enter image description here

私はポイントの端に赤い線を設定することができますどのように?事前に

おかげで、

Rhenanバーテルズ

答えて

5

あなたはこのようなgeom_crossbar()で少しハックを行うことができ:

ggplot(iris, aes(x=Species, y=Sepal.Width, shape=Species)) + 
    geom_jitter(width=0.2) + 
    geom_crossbar(data=iris.summary, aes(ymin = Sepal.Width, ymax = Sepal.Width), 
        size=1,col="red", width = .5) 

あなたはそれだけで権利を取得するためにwidth = ...でプレイしなければなりません、しかし、これは近いです。 enter image description here

直接関係が、私はstat_summary()から走行距離の多くを取得し、それが少し良く、あまりにもデータを示しているとは思いません:

ggplot(iris, aes(x=Species, y=Sepal.Width, shape=Species)) + 
    geom_jitter(width=0.2) + 
    stat_summary(fun.data = mean_cl_normal, geom = "crossbar", 
       width = .5, color = "red") 
関連する問題