2

ggplot2 で比較するためにプロットしたい一連の密度推定値があります。私はこれまでに選択した詳細のいずれにも執着していません (たとえば、これらすべてを 1 つのプロットに配置する必要があるか、ファセット、grid.arrange を使用する必要があるかなど)、提案を受け付けています。

最初の試み:

p1<-ggplot(data, aes(TPM,fill=col))+scale_x_log10()+scale_fill_brewer(type="div") + geom_density(alpha=.7) 
p2<-ggplot(data, aes(RPKM,fill=col))+scale_x_log10()+scale_fill_brewer(type="div") + geom_density(alpha=.7) 
grid.arrange(p1,p2,ncol=1)

ここに画像の説明を入力

良いですが、比較できるように軸を同じにしたいと思います。

を使用して制限を設定しようとしましたが、次のcoord_cartesian(xlim=c(0,5))ようなエラーが発生します

Error in seq.default(min, max, by = by) : 
  'from' cannot be NA, NaN or infinite

私も制限を設定しようとしましたscale_x_log10(limits=c(0,5)が、

Error in seq.default(range[1], range[2], length = 200) : 
  'from' cannot be NA, NaN or infinite
Error in exists(name, envir = env, mode = mode) : 
  argument "env" is missing, with no default

これらのグラフをより簡単に比較できるように並べるより良い方法はありますか? 私はどんな解決策にも対応します。

私のデータは次の形式です。

         RPKM         TPM col
1 0.129335235 0.602873040   3
2 0.395073341 1.724916453   4
3 0.004909958 0.003465248   1
4 0.466517328 0.557687694   1
5 0.522773169 0.486767563   1
6 0.179694966 0.180683888   1
4

1 に答える 1

4

データ フレームでワイドからロングへの変換を行う場合、プロットに ggplot ファセットを使用できます。デフォルトでは、オーバーライドしない限り、x と y の縮尺は同じになります。以下の例のデータを生成しました):

library(ggplot2)
library(reshape2)
library(gridExtra)

set.seed(1492)
data <- data.frame(RPKM=runif(2000, min=0, max=1),
                   TPM=runif(2000, min=0, max=1),
                   col=factor(sample(1:9, 2000, replace=TRUE)))

data_m <- melt(data)
data_m$col <- factor(data_m$col) # need to refactor "col"

gg <- ggplot(data_m)
gg <- gg + geom_density(aes(value, fill=col), alpha=.7) 
gg <- gg + scale_fill_brewer(type="div")
gg <- gg + facet_wrap(~variable, ncol=1)
gg

ここに画像の説明を入力

于 2014-10-08T01:45:31.970 に答える