SORU
26 Mayıs 2011, PERŞEMBE


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
26 Mayıs 2011, PERŞEMBE


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"))

enter image description here

Benzer tarifler farklı türleri – bar araziler, çubuk, vb. arsalar eklemek için kullanılır

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008
  • sonia989

    sonia989

    26 EKİM 2006
  • Video Copilot

    Video Copilo

    21 EYLÜL 2006