Nasıl 2 farklı arsa y-eksen miyim?
Benim gibi üst üste iki serpme R, böylece her puan kendi (farklı) y ekseni (yani, pozisyon 2 ve 4 rakam) ama nokta üst üste aynı şekil.
plot
ile bunu yapmak mümkün mü?
EditÖrnek kod, sorunu gösteren
# example code for SO question
y1 <- rnorm(10, 100, 20)
y2 <- rnorm(10, 1, 1)
x <- 1:10
# in this plot y2 is plotted on what is clearly an inappropriate scale
plot(y1 ~ x, ylim = c(-1, 150))
points(y2 ~ x, pch = 2)
CEVAP
güncelleme: http://rwiki.sciviews.org/doku.php?id=tips:graphics-base:2yaxes, link artık kırık R wiki olduğunu kopyalanan malzeme: ayrıca the wayback machine mevcut
Aynı arsa üzerinde iki farklı y ekseninde
(aslında Daniel Rajdl tarafından bazı malzeme 2006/03/31 15:26)
Lütfen uygun aynı arsa üzerinde iki farklı ölçekler kullanmak olduğu çok az durum vardır unutmayın. Çok kolay grafik Görüntüleyicisi yanıltmak için. Kontrol aşağıdaki iki örnek ve yorumlar bu konuda (example1, example2 Junk Charts) yanı sıra this article by Stephen Few (hangi varmıştır “kesinlikle olamaz sonuçlandırmak, bir kez ve için tüm bu grafikler ile çift ölçekli eksenler asla yararlı; ancak o zaman ben düşünemiyorum bir durum bu yetkiye ışık başka, daha iyi çözümler.”) Ayrıca bakınız this cartoon ...! 4 noktası
Eğer belirlenen temel tarifi oluşturmak için ilk arsa, set par(new=TRUE)
önlemek için R takas grafik aygıt oluşturma, ikinci komplo ile axes=FALSE
(ve ayarı xlab
ylab
olmak boş – ann=FALSE
gerektiğini de çalışır) ve daha sonra kullanarak axis(side=4)
Ekle yeni bir eksen üzerinde sağ tarafta, ve mtext(...,side=4)
Ekle bir eksen etiket üzerinde sağ tarafta. İşte bir örnek uydurma bir miktar veri kullanma
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)
plotrix
paket twoord.plot()
latticeExtra
paket doubleYScale()
yaptığı gibi bu süreci otomatik hale getirir.
Başka bir örnek (Robert W. Baer tarafından R E-posta listesi bir yazı 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ı türleri – bar araziler, çubuk, vb. arsalar eklemek için kullanılır
Nasıl iki farklı dalları dosyaları kar...
Nasıl MAX(Sütun değeri), SQL başka bir...
Nasıl bir farklı işlemeye git bir şube...
Nasıl matplotlib şekil başlık ve eksen...
Nasıl zsh istemi-renkli (normal metind...