คำถามติดแท็ก ggplot2

ggplot2 เป็นแพคเกจการวาดแผนภูมิโอเพ่นซอร์สที่ได้รับการบำรุงรักษาอย่างแข็งขันสำหรับ R ซึ่งเขียนโดย Hadley Wickham ตามหลักการของ "ไวยากรณ์ของกราฟิก" มันมาแทนที่พล็อตพื้นฐานของ R และแพคเกจขัดแตะบางส่วนในขณะที่ให้ API ที่สะอาดมีประสิทธิภาพทรงพลังและความสนุก

7
เราจะสร้างกราฟสไตล์ xkcd ได้อย่างไร?
เห็นได้ชัดว่าชาวบ้านได้คิดวิธีการที่จะทำให้xkcdกราฟสไตล์ใน Mathematicaและในน้ำยาง เราสามารถทำได้ใน R หรือไม่? Ggplot2-ERS? geom_xkcd และ / หรือ theme_xkcd? ฉันเดาในกราฟิกฐาน, par (xkcd = TRUE)? ฉันต้องทำอย่างไร? ในฐานะที่เป็นแทงครั้งแรก (และแสดงให้เห็นอย่างสง่างามมากขึ้นด้านล่าง) ใน ggplot2 การเพิ่มอาร์กิวเมนต์กระวนกระวายใจไปยังบรรทัดทำให้ดูดีขึ้น ดังนั้น - ggplot(mapping=aes(x=seq(1,10,.1), y=seq(1,10,.1))) + geom_line(position="jitter", color="red", size=2) + theme_bw() มันทำให้เป็นตัวอย่างที่ดี - แต่แกนและฟอนต์นั้นดูซับซ้อนกว่า แม้ว่าแบบอักษรจะได้รับการแก้ไข (ด้านล่าง) แม้ว่า วิธีเดียวที่จะจัดการกับขวานเพื่อล้างพวกมันออกและดึงพวกเขาด้วยมือ? มีวิธีแก้ปัญหาที่สง่างามกว่านี้ไหม? โดยเฉพาะอย่างยิ่งใน ggplot2 สามารถแก้ไข element_line ในระบบชุดรูปแบบใหม่เพื่อโต้แย้งอาร์กิวเมนต์ที่มีลักษณะเหมือนกระวนกระวายใจได้หรือไม่?
697 r  ggplot2  plot 

8
การหมุนและการเว้นวรรคฉลากแกนใน ggplot2
ฉันมีพล็อตที่แกน x เป็นปัจจัยที่มีฉลากยาว แม้ว่าตอนนี้อาจไม่ใช่การสร้างภาพในอุดมคติ แต่ตอนนี้ฉันต้องการหมุนป้ายกำกับเหล่านี้ให้เป็นแนวตั้ง ฉันพบส่วนนี้ด้วยโค้ดด้านล่าง แต่อย่างที่คุณเห็นป้ายกำกับจะไม่ปรากฏให้เห็นโดยสิ้นเชิง data(diamonds) diamonds$cut <- paste("Super Dee-Duper",as.character(diamonds$cut)) q <- qplot(cut,carat,data=diamonds,geom="boxplot") q + opts(axis.text.x=theme_text(angle=-90))
669 r  ggplot2  labels 

16
พล็อตกราฟสองกราฟในเนื้อเดียวกันใน R
ฉันต้องการลงจุด y1 และ y2 ในพล็อตเดียวกัน x <- seq(-2, 2, 0.05) y1 <- pnorm(x) y2 <- pnorm(x, 1, 1) plot(x, y1, type = "l", col = "red") plot(x, y2, type = "l", col = "green") แต่เมื่อฉันทำเช่นนี้พวกเขาไม่ได้วางแผนในพล็อตเดียวกันด้วยกัน ใน Matlab สามารถทำได้hold onแต่ไม่มีใครรู้วิธีการทำใน R?
571 r  plot  ggplot2  r-faq 

2
จะกำหนดขีด จำกัด สำหรับแกนในแปลง ggplot2 R ได้อย่างไร?
ฉันพล็อตต่อไปนี้: library(ggplot2) carrots <- data.frame(length = rnorm(500000, 10000, 10000)) cukes <- data.frame(length = rnorm(50000, 10000, 20000)) carrots$veg <- 'carrot' cukes$veg <- 'cuke' vegLengths <- rbind(carrots, cukes) ggplot(vegLengths, aes(length, fill = veg)) + geom_density(alpha = 0.2) ทีนี้พูดว่าฉันแค่ต้องการพล็อตพื้นที่ระหว่างx=-5000ถึง5000แทนช่วงทั้งหมด ฉันจะทำสิ่งนั้นได้อย่างไร
358 r  plot  ggplot2 

13
แปลงแบบเคียงข้างกันกับ ggplot2
ฉันต้องการที่จะวางด้านข้างทั้งสองแปลงโดยด้านข้างใช้แพคเกจ ggplot2par(mfrow=c(1,2))คือทำเทียบเท่า ตัวอย่างเช่นฉันต้องการให้สองแปลงต่อไปนี้แสดงแบบเคียงข้างกันในระดับเดียวกัน x <- rnorm(100) eps <- rnorm(100,0,.2) qplot(x,3*x+eps) qplot(x,2*x+eps) ฉันต้องใส่ใน data.frame เดียวกันหรือไม่ qplot(displ, hwy, data=mpg, facets = . ~ year) + geom_smooth()
339 r  visualization  ggplot2 

5
การพล็อตตัวแปรสองตัวเป็นบรรทัดโดยใช้ ggplot2 บนกราฟเดียวกัน
เป็นคำถามที่ค่อนข้างใหม่ แต่บอกว่าฉันมีข้อมูลเช่นนี้: test_data <- data.frame( var0 = 100 + c(0, cumsum(runif(49, -20, 20))), var1 = 150 + c(0, cumsum(runif(49, -10, 10))), date = seq(as.Date("2002-01-01"), by="1 month", length.out=100) ) ฉันจะพล็อตทั้งอนุกรมเวลาvar0และvar1กราฟเดียวกันdateโดยใช้แกน x ได้ggplot2อย่างไร? คะแนนโบนัสหากคุณทำvar0และvar1สีที่แตกต่างและสามารถรวมตำนาน! ฉันแน่ใจว่ามันง่ายมาก แต่ฉันไม่สามารถหาตัวอย่างได้
305 r  ggplot2  graph  time-series  r-faq 

11
จะบันทึกพล็อตเป็นอิมเมจบนดิสก์ได้อย่างไร?
ฉันวางแผนการถดถอยเชิงเส้นอย่างง่ายโดยใช้อาร์ฉันต้องการบันทึกภาพนั้นเป็น PNG หรือ JPEG เป็นไปได้ไหมที่จะทำโดยอัตโนมัติ? (ผ่านรหัส) มีคำถามที่แตกต่างกันสองข้อข้อแรกฉันดูพล็อตบนหน้าจอของฉันแล้วและฉันต้องการบันทึกตามที่เป็นอยู่ ประการที่สองฉันยังไม่ได้สร้างพล็อต แต่ฉันต้องการบันทึกลงดิสก์โดยตรงเมื่อฉันเรียกใช้รหัสการพล็อตของฉัน
304 r  plot  ggplot2  lattice  r-faq 

13
สั่งซื้อแท่งกราฟแท่ง ggplot2
ฉันกำลังพยายามสร้างกราฟแท่งที่แถบที่ใหญ่ที่สุดใกล้กับแกน y และแถบที่สั้นที่สุดจะไกลที่สุด นี่คือตารางที่ฉันมี Name Position 1 James Goalkeeper 2 Frank Goalkeeper 3 Jean Defense 4 Steve Defense 5 John Defense 6 Tim Striker ดังนั้นฉันจึงพยายามสร้างกราฟแท่งที่จะแสดงจำนวนผู้เล่นตามตำแหน่ง p <- ggplot(theTable, aes(x = Position)) + geom_bar(binwidth = 1) แต่กราฟจะแสดงแถบผู้รักษาประตูก่อนจากนั้นจะเป็นการป้องกันและในที่สุดก็เป็นกองหน้า ฉันต้องการให้กราฟสั่งให้แถบป้องกันอยู่ใกล้กับแกน y, ผู้รักษาประตูคนหนึ่งและในที่สุดก็เป็นกองหน้า ขอบคุณ
301 r  ggplot2  r-faq 

11
วิธีการเปลี่ยนชื่อตำนานใน ggplot
ฉันมีพล็อตดังต่อไปนี้ มันถูกสร้างขึ้นด้วยคำสั่งนี้: library(ggplot2) df <- data.frame(cond = factor(rep(c("A", "B"), each = 200)), rating = c(rnorm(200), rnorm(200, mean=.8))) ggplot(df, aes(x=rating, fill=cond)) + geom_density(alpha = .3) + xlab("NEW RATING TITLE") + ylab("NEW DENSITY TITLE") ตอนนี้สิ่งต่อไปที่ฉันต้องการจะทำคือการปรับเปลี่ยนชื่อตำนานจากcondเข้าNEW LEGEND TITLE ดังนั้นสิ่งที่ฉันทำคือการเพิ่มบรรทัดต่อไปนี้เพิ่มจุดสิ้นสุดของโค้ดด้านบน: +labs(colour="NEW LEGEND TITLE") แต่มันไม่ทำงาน วิธีที่ถูกต้องในการทำคืออะไร?
299 r  plot  ggplot2 

3
ชื่อเรื่อง Center Plot ใน ggplot2
สวัสดีโค้ดง่าย ๆ นี้ (และสคริปต์ของฉันตั้งแต่เช้านี้) เริ่มให้ชื่อฉันเป็น ggplot2 แล้ว Ubuntu version: 16.04 R studio version: Version 0.99.896 R version: 3.3.2 GGPLOT2 version: 2.2.0 ฉันติดตั้งใหม่ข้างต้นเช้านี้เพื่อลองและแก้ไขปัญหานี้ .... dat <- data.frame( time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")), total_bill = c(14.89, 17.23) ) # Add title, narrower bars, fill color, and change axis labels ggplot(data=dat, aes(x=time, y=total_bill, fill=time)) …
255 r  ggplot2 

4
ลบคำอธิบายแผนภูมิ ggplot 2.2
ฉันพยายามรักษาตำนานของเลเยอร์หนึ่ง (ราบรื่น) และลบคำอธิบายของอีกเลเยอร์ (จุด) ฉันได้พยายามปิดตำนานด้วยและguides(colour = FALSE)geom_point(aes(color = vs), show.legend = FALSE) แก้ไข : เนื่องจากคำถามนี้และคำตอบนั้นได้รับความนิยมจึงเป็นตัวอย่างที่ทำซ้ำได้ตามลำดับ: library(ggplot2) ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) + geom_point(aes(color = vs)) + geom_point(aes(shape = factor(cyl))) + geom_line(aes(linetype = factor(gear))) + geom_smooth(aes(fill = factor(gear), color = gear)) + theme_bw()
250 r  ggplot2  legend 

15
ggplot ที่มี 2 แกน y ในแต่ละด้านและระดับที่แตกต่างกัน
ฉันต้องพล็อตแผนภูมิแท่งที่แสดงจำนวนและแผนภูมิเส้นที่แสดงอัตราทั้งหมดในหนึ่งแผนภูมิฉันสามารถทำทั้งสองอย่างแยกจากกัน แต่เมื่อฉันรวมเข้าด้วยกันฉันจะปรับสเกลของเลเยอร์แรก (เช่นgeom_bar) ทับซ้อนกันเป็นวินาที ชั้น (เช่นgeom_line) ฉันสามารถเลื่อนแกนของgeom_lineไปทางขวาได้ไหม?
231 r  ggplot2  r-faq 

20
วิธีเปลี่ยนป้ายกำกับ facet?
ฉันใช้ggplotคำสั่งต่อไปนี้: ggplot(survey, aes(x = age)) + stat_bin(aes(n = nrow(h3), y = ..count.. / n), binwidth = 10) + scale_y_continuous(formatter = "percent", breaks = c(0, 0.1, 0.2)) + facet_grid(hospital ~ .) + theme(panel.background = theme_blank()) ผลิต ฉันต้องการที่จะเปลี่ยนแง่ป้าย แต่บางสิ่งบางอย่างที่สั้นกว่า (เช่นHosp 1, Hosp 2... ) เพราะพวกเขาเป็นเวลานานเกินไปในขณะนี้และดูแคบ (การเพิ่มความสูงของกราฟไม่ได้ตัวก็จะใช้พื้นที่มากเกินไปใน เอกสาร) ฉันดูหน้าช่วยเหลือของfacet_gridแต่ไม่สามารถหาวิธีได้
230 r  ggplot2  symbols  facet  plotmath 

9
เพิ่มสมการเส้นถดถอยและ R ^ 2 บนกราฟ
ฉันสงสัยว่าจะเพิ่มเส้นสมการถดถอยและ R ^ 2 ggplotบน รหัสของฉันคือ: library(ggplot2) df <- data.frame(x = c(1:100)) df$y <- 2 + 3 * df$x + rnorm(100, sd = 40) p <- ggplot(data = df, aes(x = x, y = y)) + geom_smooth(method = "lm", se=FALSE, color="black", formula = y ~ x) + geom_point() p ความช่วยเหลือใด …

2
ปิดตำนานบางส่วนใน ggplot
สมมติว่าฉันมี ggplot ที่มีมากกว่าหนึ่งตำนาน mov <- subset(movies, length != "") (p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) + geom_point() ) ฉันสามารถปิดการแสดงตำนานทั้งหมดเช่นนี้: (p1 <- p0 + theme(legend.position = "none")) การส่งผ่านshow_guide = FALSEไปยังgeom_point(ตามคำถามนี้ ) จะปิดตำนานรูปร่าง (p2 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) + geom_point(show_guide = …
221 r  ggplot2 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.