@ Часть № 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, кроме как сделать что-то неприятное, например, попытаться соответствующим образом добавить невидимые точки.
edit : масштабирование по панелям от Джоша О'Брайена, latticeExtra от Aaron