2017-11-07 30 views
1

これは初めてのggplot2です。私は3列のテーブルを持っており、3つの列すべての度数分布を1つの図にプロットしたいと思います。私は以前にhist()を使用していましたので、このggplot2で少し失われています。ここに私のテーブルの例があります。 3列のA、B、Cヘッダーを持つタブ区切りテーブル。Rの3つの列から1つのヒストグラムを作成するには?

A   B   C 
1.38502 1.38502  -nan 
0.637291 0.753084 1.55556 
0.0155242 0.0164394 -nan 
3.29355 1.15757  -nan 
1.00254 1.10108  0.132039 
0.0155424 0.0155424 nan 
0.760261 0.681639 0.298851 
1.21365 1.21365  -nan 
1.216  1.22541 -nan 
0.61317 0.738528 0.585657 
0.618276 0.940312 0.820591 
1.96779 1.31051  1.58609 
0.725413 2.29621  1.78989 
0.684681 0.67331  0.290221 

次のコードを使用して同様の投稿を検索しましたが、エラーが発生します。

library(ggplot2) 

dnds <- read.table('dNdS_plotfile', header =TRUE) 

ggplot(data=dnds, melt(dnds), aes_(value, fill = L1))+ 
     geom_histogram() 

ERROR:No id variables; using all as measure variables

Error: Mapping should be created with aes() or aes_().

私は本当にこのエラーを解決する方法に失われています。私は最終的な図形で重複しない3つの異なる色のヒストグラムを持つ1つの図が欲しいです。これを達成するのを手伝ってください。ありがとうございました。

+0

最初の "エラー" は警告です。 'data'引数に溶けたデータセットを与える必要があるが、' ggplot'の第2引数に 'mapping'引数を渡す必要があるので、2番目のエラーはエラーです。 – aosmith

+0

3つの重ねられた(または何か)ヒストグラムが必要ですか? 'A'、' B'、 'C'のいずれかを指定するか、3つの列をすべて1つのベクトルにマージしますか? – MrGumble

答えて

1

これは、あなたが探しているものを達成するはずです。私は、ggplot2やdplyrのような役に立つパッケージをロードするパッケージtidyverseをロードするのが好きです。 geom_histogram()

、あなたは)かビン()とビンの数(引数ビン幅でヒストグラムのbindwidthを指定することができます。棒を積み重ねたくない場合は、引数のposition = "dodge"を使用することができます。

はこちらのドキュメントを参照してください:http://ggplot2.tidyverse.org/reference/geom_histogram.html

library(tidyverse) 

data <- read.table("YOUR_DATA", header = T) 

graph <- data %>% 
    gather(category, value) 

ggplot(graph, aes(x = value, fill = category)) + 
    geom_histogram(binwidth = 0.5, color = "black") 

enter image description here

+0

問題ありません!お力になれて、嬉しいです! –

関連する問題