güncelleme : http://rwiki.sciviews.org/doku.php?id=tips:graphics-base:2yaxes adresindeki R wiki'de bulunan kopyalanmış materyal , bağlantı artık bozuk: geri dönüş makinesinden de edinilebilir
Aynı arsa üzerinde iki farklı y ekseni
(orijinal olarak Daniel Rajdl 2006/03/31 15:26 tarafından yazılmış bazı materyaller)
Lütfen aynı arsa üzerinde iki farklı ölçek kullanmanın uygun olduğu çok az durum olduğunu unutmayın. İzleyiciyi grafiği yanıltmak çok kolaydır. Aşağıdaki iki örnek ve yorum bu konuda (Kontrol example1 , example2 gelen Önemsiz Charts ), hem de bu makaleyi Birkaç Stephen çift ölçekli eksenli grafikleri asla olduklarını, kesinlikle, sonuçlandırmak ve son kez edemez”sonucuna ( yararlı; sadece diğer, daha iyi çözümlerin ışığında onları garanti eden bir durum düşünemediğim için. ”) Ayrıca bu karikatürdeki 4. noktaya bakın ...
Eğer belli ise temel tarifi, set ilk arsa yaratmaktır par(new=TRUE)
, grafik cihazı takas ikinci arsa oluşturmasını R önlemek için axes=FALSE
(ve ayar xlab
ve ylab
- boş olması ann=FALSE
kullanarak sonra ve gerektiği zamanda iş) axis(side=4)
yeni bir eksen eklemek için sağ tarafa ve sağ tarafa mtext(...,side=4)
bir eksen etiketi eklemek için. İşte biraz uydurma veri kullanan bir örnek:
set.seed(101)
x <- 1:10
y <- rnorm(10)
## second data set on a very different scale
z <- runif(10, min=1000, max=10000)
par(mar = c(5, 4, 4, 4) + 0.3) # Leave space for z axis
plot(x, y) # first plot
par(new = TRUE)
plot(x, z, type = "l", axes = FALSE, bty = "n", xlab = "", ylab = "")
axis(side=4, at = pretty(range(z)))
mtext("z", side=4, line=3)
twoord.plot()
içinde plotrix
olduğu gibi paketin, bu işlemini otomatik doubleYScale()
yılında latticeExtra
paketin.
Başka bir örnek (Robert W. Baer tarafından yazılan R posta listesi gönderisinden uyarlanmıştır):
## set up some fake test data
time <- seq(0,72,12)
betagal.abs <- c(0.05,0.18,0.25,0.31,0.32,0.34,0.35)
cell.density <- c(0,1000,2000,3000,4000,5000,6000)
## add extra space to right margin of plot within frame
par(mar=c(5, 4, 4, 6) + 0.1)
## Plot first set of data and draw its axis
plot(time, betagal.abs, pch=16, axes=FALSE, ylim=c(0,1), xlab="", ylab="",
type="b",col="black", main="Mike's test data")
axis(2, ylim=c(0,1),col="black",las=1) ## las=1 makes horizontal labels
mtext("Beta Gal Absorbance",side=2,line=2.5)
box()
## Allow a second plot on the same graph
par(new=TRUE)
## Plot the second plot and put axis scale on right
plot(time, cell.density, pch=15, xlab="", ylab="", ylim=c(0,7000),
axes=FALSE, type="b", col="red")
## a little farther out (line=4) to make room for labels
mtext("Cell Density",side=4,col="red",line=4)
axis(4, ylim=c(0,7000), col="red",col.axis="red",las=1)
## Draw the time axis
axis(1,pretty(range(time),10))
mtext("Time (Hours)",side=1,col="black",line=2.5)
## Add Legend
legend("topleft",legend=c("Beta Gal","Cell Density"),
text.col=c("black","red"),pch=c(16,15),col=c("black","red"))
Benzer tarifler, farklı tipteki grafikleri üst üste koymak için kullanılabilir - çubuk grafikleri, histogramlar, vb.