ฮิสโตแกรมความหนาแน่น ggplot2 พร้อมขอบถังแบบกำหนดเอง

ฉันสามารถพล็อตฮิสโตแกรมความหนาแน่นได้ และฉันสามารถพล็อตฮิสโตแกรมปกติด้วยถังแบบกำหนดเองได้ แต่ไม่ใช่ทั้งสองอย่างพร้อมกัน นี่คือความพยายามของฉัน:

library(ggplot2)

vals = c(2.6, 5.2, 4.1, 6.9, 5.7, 5.2, 4.4, 5.5, 6.3, 6.1, 4.7, 1.4)
myplot = qplot(vals, geom = 'blank') +   
         geom_line(aes(y = ..density..), stat = 'density',
                   colour = 26, size = 2, alpha = .6) +                     
         geom_histogram(aes(y = ..density..), binwidth = 1,
                        fill = 28, alpha = 0.3) +
         stat_bin(breaks=seq(-.5,8.5,1)) + xlim(-1, 9)

print(myplot)

หากคุณลบคำ stat_bin ออก ฮิสโตแกรมจะลงจุดอย่างถูกต้องเป็นฮิสโตแกรมความหนาแน่น แต่มีตำแหน่งถังเริ่มต้น เพิ่มเทอม stat_bin แล้วถังขยะก็ถูกต้องแต่ไม่ใช่ฮิสโตแกรมความหนาแน่นอีกต่อไป มีความคิดใดที่จะทำให้ทั้งสองทำงานได้อย่างไร?


person user1956609    schedule 12.11.2013    source แหล่งที่มา


คำตอบ (1)


คุณสามารถเพิ่มอาร์กิวเมนต์ breaks= ไปที่ geom_histogram() เพื่อกำหนดจุดพักของคุณเอง (คุณไม่จำเป็นต้องใช้ geom_histogram() และ stat_bin() ร่วมกันเพราะ geom_histogram() ใช้ stat_bin() เพื่อสร้างผลลัพธ์)

qplot(vals, geom = 'blank') +   
  geom_line(aes(y = ..density..), colour=26, stat = 'density', size = 2, alpha = .6) + 
  geom_histogram(aes(y = ..density..), fill = 28, alpha = 0.3, breaks=seq(-.5,8.5,1))

ป้อนคำอธิบายรูปภาพที่นี่

person Didzis Elferts    schedule 12.11.2013
comment
หากนี่คือสิ่งที่คุณกำลังมองหา คุณจะยอมรับคำตอบนี้ได้หรือไม่? คลิกเครื่องหมายถูกสีเขียวใต้ปุ่มลงคะแนน - person Andy Clifton; 27.11.2013