質問
dotplotを作成するには、次のテキストファイルを使用しています。
## filename difference RMSD
1bso.pdb 1.0 0.5645
1cj51.9.pdb 2.0 3.5596
1cj51.1.pdb 3.0 3.5573
3qzj.pdb 3.0 0.8302
1bsy.pdb 4.0 0.5387
1cj51.5.pdb 8.0 3.9864
2gj5.pdb 10.0 0.8446
1cj51.10.pdb 11.0 3.5914
1uz2.pdb 12.0 1.7741
2blg.pdb 12.0 0.5449
最初の列はファイル名、差の2番目の列、3番目はRMSDです。データが注文されたため、違いが上昇します。
次のコマンドを使用して個々のドットプロットを作成できます。
# This plots the difference
library(lattice)
data <- read.table("~/Documents/Beta_test_area/pa.txt", header=F, sep="\t")
dotplot(V1~V2, xlim=c(0, 150), xlab="CCS Difference", data=data)
# This plots the RMSD
dotplot(V1~V3, xlim=c(0, 5), xlab="RMSD", data=data)
グラフでは、y軸のデータはファイル名で順序付けられ、テキストファイルのようにデータがプロットされていません。データファイルの順序をミラーリングするようにy軸を注文するにはどうすればよいですか?
私が抱えている他の問題は、プロットを組み合わせることです。プロットを1つの列に、2列以上にプロットするように、プロットを作成するにはどうすればよいですか。左側に差分プロットがあり、右側にRMSDプロットがあります。
解決
@ローマンのパート#1は正しいです - ここにあなたが望むように注文を取得するための少し滑らかな方法があります。
dat <- read.table(textConnection("
filename diff RMSD
1bso.pdb 1.0 0.5645
1cj51.9.pdb 2.0 3.5596
1cj51.1.pdb 3.0 3.5573
3qzj.pdb 3.0 0.8302
1bsy.pdb 4.0 0.5387
1cj51.5.pdb 8.0 3.9864
2gj5.pdb 10.0 0.8446
1cj51.10.pdb 11.0 3.5914
1uz2.pdb 12.0 1.7741
2blg.pdb 12.0 0.5449"),
header=TRUE)
dat <- transform(dat,filename=factor(as.character(filename),
levels=filename))
grid.arrange
からの関数 gridExtra
パッケージは、格子プロットを配置するのに便利です。
library(lattice)
d1 <- dotplot(filename~diff, xlim=c(0, 150), xlab="CCS Difference", data=dat)
# This plots the RMSD
d2 <- dotplot(filename~RMSD, xlim=c(0, 5), xlab="RMSD", data=dat)
library(gridExtra)
grid.arrange(d1,d2,nrow=1)
または(@aaronから):
library(latticeExtra)
c(d1,d2)
あるいは、@romanが提案したように、小さな倍数を作成できることを示唆しています。
library(reshape)
m <- melt(dat)
dotplot(filename~value|variable,
scales=list(x=list(relation="free")), xlim=list(c(0,150), c(0,5)),
data=m)
または
library(ggplot2)
g1 <- qplot(value,filename,data=m)+
facet_grid(.~variable,scale="free")+theme_bw()+
opts(panel.margin=unit(0,"lines"))
ここでは、目に見えないポイントを適切に追加しようとするような厄介なことをする以外に、パネルごとにX軸を制限する方法を本当に知りません。
編集: :Josh O'Brienからのパネルごとのスケーリング、アーロンのLatticeExtra
他のヒント
あなたの最初の質問は、要因の順序付けに関連していると思います。それは一般的な問題ですが、要因が使用するトリックを学ぶと、それは(素晴らしい)機能になります。これは少なくとも何度も議論されています ここ と ここ.
すべての詳細についてあなたの2番目の質問を理解しているかどうかはわかりませんが、一般的に2つの戦略があります。ベースグラフィックスでは、使用できます par
口論mfrow
グラフィックをプロットする定義された行/列を備えたデバイスを開くには、例: par(mfrow = c(2, 1))
2つの行と1つの列で2つのプロットをプロットします。 par(mfrow = c(2,2))
2x2グリッドでレイアウトされたグラフが表示されます。また、代替案を考慮することもできます。 layout
と split.screen
.
グリッドグラフィックス(latticeとggplot2を考える)では、アプローチは異なります。グリッドで複数のグラフをプロットできます。 |
また facet_grid
為に lattice
と ggplot2
, 、 それぞれ。