ระยะห่างของแกน x พร้อมเครื่องหมายถูกแบบกำหนดเองตามมาตราส่วนบันทึก

ฉันได้พล็อตข้อมูลของฉันใน Scatterplot ธรรมดาโดยใช้ plot() ฉันได้กำหนดช่วงของแกน x ให้อยู่ระหว่าง 0 ถึง 1,000 ในระดับบันทึก จนถึงตอนนี้ดีมาก แต่ฉันมีชุดข้อมูลที่แตกต่างกัน 3 ชุด และสำหรับหนึ่งในนั้น ระยะห่างคือ 0, 1, 10, 100, 1,000 ในขณะที่อีกสองชุดไม่มี "1" ฉันต้องการให้ทั้ง 3 แปลงรวม "1"

ฉันลองด้วย xaxt="n" แล้วก็ axis(1, at=c(0, 1, 10, 100, 1000))

จากนั้น 1 จะถูกพล็อตใกล้กับ 0 ดังนั้นจึงไม่มีการปรับขนาดบันทึกระหว่าง 0 ถึง 1 ฉันหวังว่านี่จะไม่สับสนเกินไป ฉันจะจัดการพล็อต 0,1,10,100,1000 ทั้งหมดในระดับบันทึกได้อย่างไร เช่น ระยะห่างเท่ากันระหว่างค่าเหล่านี้ทั้งหมด

ฉันหวังว่าจะมีคนช่วยได้!


person user3045021    schedule 28.11.2013    source แหล่งที่มา
comment
คุณได้ลองตั้งค่า xlim ใน plot แล้วหรือยัง?   -  person fotNelton    schedule 28.11.2013
comment
หวังว่าโพสต์นี้จะให้คำแนะนำแก่คุณ   -  person TWL    schedule 28.11.2013
comment
@fotNelton: ใช่ฉันใช้ xlim เพื่อกำหนดช่วง แต่ดูเหมือนว่า R จะทำการ sacling ของเห็บตามค่าเริ่มต้น   -  person user3045021    schedule 28.11.2013
comment
TWL: คำใบ้ว่าโพสต์ของฉันมีข้อมูลน้อยเกินไปหรือไม่ ฉันขอโทษ ฉันเป็นมือใหม่จริงๆ แต่ฉันจะโพสต์สคริปต์ทั้งหมดถ้าคุณต้องการ   -  person user3045021    schedule 28.11.2013


คำตอบ (1)


คุณต้องทำสิ่งนี้:

#plot 1
# i don't know what your ylim should be but you want them to be 
# minimum across y1, y2, y3 and maximum across y1, y2, y3
plot(x1,y1,axes=F,xlim=c(0,1000),ylim=c(?,?),xlog=TRUE, col="red")
par(new=T)

#plot 2
plot(x2,y2,axes=F,xlim=c(0,1000),ylim=c(?,?),xlog=TRUE, col="blue")
par(new=T)

#plot 3
plot(x3,y3,axes=F,xlim=c(0,1000),ylim=c(?,?),xlog=TRUE, col="yellow")

#now put back in the axes
#y axis first
axis(2)
#x axis
axis(1,at=c(0, 1, 10, 100, 1000),label=c(0, 1, 10, 100, 1000))
box(bty="l")

สิ่งนี้ทำคือสร้างกราฟสามกราฟที่มีช่วง x และ y เท่ากัน โดยเฉพาะช่วง x สำหรับกราฟทั้งหมดจะเท่ากัน คือ 0 ถึง 1,000 ทั้งสองแกนควรขยายข้อมูลของคุณ หากไม่ คุณก็แค่ต้องขยาย x หรือ y แทนที่เครื่องหมายคำถามใน ylim=c(?,?) สำหรับค่าตัวเลขบางค่าที่จะครอบคลุมช่วงค่า y ของคุณ

เมื่อข้อมูลถูกพล็อตแล้ว ให้เพิ่มคำสั่ง axis เพื่อใส่เครื่องหมายถูกและป้ายกำกับ

person David    schedule 11.12.2015