3

私は次のggplot2プロットを持っています:

ggplot(iris) + geom_boxplot(aes(x=Species, y=Petal.Length, fill=Species)) + coord_flip()

代わりに、これを水平密度プロットまたはヒストグラムとしてプロットします。つまり、箱ひげ図ではなく、各種またはヒストグラムの密度線プロットを使用します。これはトリックを行いません:

> ggplot(iris) + geom_density(aes(x=Species, y=Petal.Length, fill=Species)) + coord_flip()
Error in eval(expr, envir, enclos) : object 'y' not found

簡単にするためにSpeciesx変数および実際のデータとして使用しましたfillが、実際のデータでは、X軸は1つの条件セットを表し、塗りつぶしは別の条件セットを表します。それはプロットの目的には関係ありませんが。yX軸が、値が箱ひげ図ではなく密度/ヒストグラムとしてプロットされるさまざまな条件を表すようにしようとしています。

これを編集すると、種のような2つの因子のような変数を持つ変数でよりよく示されます。データセットではmpg、各メーカーの密度プロットを作成し、displcyl値の分布をプロットします。x軸(反転座標で垂直)は各メーカーを表し、ヒストグラム化される値はですdisplが、各メーカーについて、そのメーカーの値と同じ数のヒストグラムが必要cylです。これがより明確になることを願っています。y=カウントを期待しているので、これは機能しないことを私は知っています。

ggplot(mpg, aes(x=manufacturer, fill=cyl, y=displ)) + 
    geom_density(position="identity") + coord_flip()

私が得る最も近いものは:

> ggplot(mpg, aes(x=displ, fill=cyl)) + 
+     geom_density(position="identity") + facet_grid(manufacturer ~ .) 

ただし、異なるグリッドは必要ありません。ヒストグラムの場合のように、同じプロット内の異なるエントリにする必要があります。

4

1 に答える 1

6

このようなもの?histogramdensityプロットの両方で、y変数はcountです。そのx = Petal.Lengthため、y 軸にプロットされる周波数 (その特定のビン幅) をプロットする必要があります。fill=Speciesと一緒に使用して、 でx=Petal.Length色を指定しSpeciesます。

の場合histogram:

ggplot(iris, aes(x=Petal.Length, fill=Species)) + 
       geom_histogram(position="identity") + coord_flip()

の場合density:

ggplot(iris, aes(x=Petal.Length, fill=Species)) + 
       geom_density(position="identity") + coord_flip()

編集:多分あなたは探していますfacettingか??

ggplot(mpg, aes(x=displ, fill=factor(cyl))) +  
     geom_density(position="identity") + 
     facet_wrap( ~ manufacturer, ncol=3)

与えます:

ここに画像の説明を入力

編集:あなたはしたくないので、私が考えることができる他の唯一の方法は、貼り付けて一緒facettingに別のグループを作成することです:manufacturercyl

dd <- mpg
dd$grp <- factor(paste(dd$manufacturer, dd$cyl))

ggplot(dd, aes(x=displ)) +  
     geom_density(aes(fill=grp), position="identity")

与えます:

ここに画像の説明を入力

于 2013-03-07T15:05:22.387 に答える