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

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

4
ฉันจะได้รับ ggplots ตาราง 'ไม่สมดุล' ได้อย่างไร?
ด้วยgrid.arrangeฉันสามารถจัดเรียงggplotตัวเลขหลายตัวในตารางเพื่อให้ได้รูปหลายแผงโดยใช้สิ่งต่างๆเช่น: library(ggplot2) library(grid) library(gridExtra) สร้าง ggplot2 บางแปลงจากนั้น plot5 <- grid.arrange(plot4, plot1, heights=c(3/4, 1/4), ncol=1, nrow=2) ฉันจะได้รับเลย์เอาต์ 2 col ที่ 'ไม่สมดุล' กับหนึ่งพล็อตใน col แรกทั้งหมดและสามพล็อตใน col ที่สองได้อย่างไร ฉันเล่นด้วยวิธี 'กริด - กริด' โดยพยายามใช้grid.arrangeเพื่อพล็อตกริดหนึ่ง (เช่นplot5ด้านบน) กับพล็อตอื่น แต่ได้รับ: เกิดข้อผิดพลาดในการจัดเรียง (... , as.table = as.table, clip = clip, main = main,: input ต้องเป็น grobs! อัปเดต: ขอบคุณสำหรับคำแนะนำ. …
94 r  ggplot2  r-grid 

11
พล็อตเมทริกซ์สหสัมพันธ์ลงในกราฟ
ฉันมีเมทริกซ์ที่มีค่าความสัมพันธ์บางค่า ตอนนี้ฉันต้องการพล็อตสิ่งนั้นในกราฟที่มีลักษณะเช่นนั้นมากหรือน้อย: ฉันจะบรรลุเป้าหมายนั้นได้อย่างไร?
93 r  ggplot2  plot  correlation 

1
การควบคุมขนาดตัวอักษร ggplot geom_text
ฉันพยายามเปลี่ยนฟอนต์เป็น 10 สำหรับเลเบลของพล็อตบาร์ของฉันggplot2โดยทำสิ่งนี้: ggplot(data=file,aes(x=V1,y=V3,fill=V2)) + geom_bar(stat="identity",position="dodge",colour="white") + geom_text(aes(label=V2),position=position_dodge(width=0.9), hjust=1.5,colour="white") + theme_bw()+theme(element_text(size=10)) ggsave(filename="barplot.pdf",width=4,height=4) แต่ภาพที่ได้จะมีขนาดตัวอักษรที่ใหญ่มากสำหรับป้ายพล็อตแท่ง จากนั้นฉันก็คิดว่าจะแก้ไขgeom_text()ด้วยสิ่งนี้: geom_text(size=10,aes(label=V2),position=position_dodge(width=0.9), hjust=1.5,colour="white") ฟอนต์ป้ายยิ่งแล้วใหญ่ ... ฉันสามารถเปลี่ยนขนาดภายในgeom_textเป็น 3 และตอนนี้ดูเหมือนแบบอักษร 10 คล้ายกับป้ายชื่อแกน ฉันสงสัยว่าเกิดอะไรขึ้น? ไม่theme(text=element_text(size=10))ใช้กับป้ายกำกับ? แล้วทำไมขนาด 10 นิ้วถึงgeom_text()แตกต่างจากในtheme(text=element_text())?
93 r  ggplot2 

3
ฉันจะจัดเรียง ggplots จำนวนโดยพลการโดยใช้ grid.arrange ได้อย่างไร
โพสต์ข้ามในกลุ่ม ggplot2 google สถานการณ์ของฉันคือฉันกำลังทำงานกับฟังก์ชันที่แสดงจำนวนพล็อตโดยพลการ (ขึ้นอยู่กับข้อมูลอินพุตที่ผู้ใช้ให้มา) ฟังก์ชันจะส่งคืนรายการ n พล็อตและฉันต้องการจัดวางพล็อตเหล่านั้นในรูปแบบ 2 x 2 ฉันกำลังดิ้นรนกับปัญหาที่เกิดขึ้นพร้อมกันของ: ฉันจะอนุญาตให้มีความยืดหยุ่นในการส่งมอบจำนวนแปลงโดยพลการได้อย่างไร? ฉันจะระบุได้อย่างไรว่าฉันต้องการให้วาง 2 x 2 กลยุทธ์ปัจจุบันของฉันใช้grid.arrangeจากgridExtraแพ็คเกจ มันอาจจะไม่ดีที่สุดโดยเฉพาะอย่างยิ่งตั้งแต่และนี้เป็นกุญแจสำคัญมันทั้งหมดไม่ทำงาน นี่คือโค้ดตัวอย่างที่แสดงความคิดเห็นของฉันโดยทดลองกับสามแปลง library(ggplot2) library(gridExtra) x <- qplot(mpg, disp, data = mtcars) y <- qplot(hp, wt, data = mtcars) z <- qplot(qsec, wt, data = mtcars) # A normal, plain-jane call to grid.arrange …
93 r  ggplot2 

1
วิธีจัดข้อความชิดซ้ายในคำอธิบายประกอบจาก ggplot2
ตัวอย่างของฉันคือ: qplot(mtcars$mpg) + annotate(geom = "text", x = 30, y = 3, label = "Some text\nSome more text") ฉันจะทำให้ข้อความตรงนี้ชิดซ้ายได้อย่างไร เพื่อให้ 'บางคนเข้าแถวกัน

3
geom_smooth () มีวิธีอะไรบ้าง?
ฉันใช้geom_smooth()จากggplot2. ในหนังสือของ Hadley Wickham ("ggplot2 - Elegant Graphics for Data Analysis") มีตัวอย่าง (หน้า 51) ที่method="lm"ใช้ ในคู่มือออนไลน์ไม่มีการพูดถึงmethodข้อโต้แย้ง ผมเห็นผลอื่น ๆ ของ Google (และคำถามที่นี่) method='loess'คนที่ใช้ มีรายการแบบละเอียดที่อธิบายตัวเลือกหรือไม่? จากสิ่งที่ฉันเห็น'lm'วาดเส้นตรงและ'loess'วาดเส้นโค้งที่ราบรื่นมาก ฉันคิดว่ามีคนอื่นที่ลากเส้นหยักระหว่างจุดอ้างอิงมากกว่า? seโต้แย้งจากตัวอย่างยังไม่ได้อยู่ในความช่วยเหลือหรือเอกสารออนไลน์ FWIW นี่คือรหัสของฉัน p <- ggplot(output8, aes(age, myoutcome, group=id, colour=year_diag_cat2)) + geom_line() + scale_y_continuous(limits = c(lwr,upr)) p + geom_smooth(aes(group=year_diag_cat2), method="loess", size=2, se=F)
93 r  ggplot2 

3
ลบตำนานพิเศษใน ggplot2
ggplot2ฉันมีกรอบข้อมูลง่ายที่ฉันพยายามที่จะทำสายรวมกันและพล็อตจุดโดยใช้ สมมติว่าข้อมูลของฉันมีลักษณะดังนี้: df <- data.frame(x=rep(1:10,2), y=c(1:10,11:20), group=c(rep("a",10),rep("b",10))) และฉันกำลังพยายามสร้างพล็อต: g <- ggplot(df, aes(x=x, y=y, group=group)) g <- g + geom_line(aes(colour=group)) g <- g + geom_point(aes(colour=group, alpha = .8)) g ผลลัพธ์ดูดีโดยมีข้อยกเว้นหนึ่งข้อ มีคำอธิบายเพิ่มเติมที่แสดงalphaสำหรับgeom_pointเลเยอร์ของฉัน ฉันจะทำให้คำอธิบายแผนภูมิแสดงสีกลุ่มได้อย่างไร แต่ไม่ใช่สีที่แสดงการตั้งค่าอัลฟาของฉัน
93 r  ggplot2  legend 

5
ฉันจะจัดเรียงรายการตัวแปรของแปลงโดยใช้ grid.arrange ได้อย่างไร
library(ggplot2) df <- data.frame(x=1:10, y=rnorm(10)) p1 <- ggplot(df, aes(x,y)) + geom_point() plist <- list(p1,p1,p1,p1,p1) # In my real example,a plot function will fit a ggplot to a list of datasets #and return a list of ggplots like the example above. ฉันต้องการจัดแปลงโดยใช้grid.arrange()ในgridExtra. ฉันจะทำสิ่งนี้ได้อย่างไรหากจำนวนพล็อตในplistเป็นตัวแปร ใช้งานได้: grid.arrange(plist[[1]],plist[[2]],plist[[3]],plist[[4]],plist[[5]]) แต่ฉันต้องการวิธีแก้ปัญหาทั่วไปมากกว่านี้ ความคิด?
92 r  ggplot2 

4
ต้องไม่ใช้ R ggplot2: stat_count () โดยมีข้อผิดพลาดเกี่ยวกับสุนทรียศาสตร์ในกราฟแท่ง
ฉันได้รับข้อผิดพลาดนี้ขณะพล็อตกราฟแท่งและฉันไม่สามารถกำจัดมันได้ฉันได้ลองทั้ง qplot และ ggplot แล้ว แต่ก็ยังเป็นข้อผิดพลาดเหมือนเดิม ต่อไปนี้คือรหัสของฉัน: library(dplyr) library(ggplot2) #Investigate data further to build a machine learning model data_country = data %>% group_by(country) %>% summarise(conversion_rate = mean(converted)) #Ist method qplot(country, conversion_rate, data = data_country,geom = "bar", stat ="identity", fill = country) #2nd method ggplot(data_country)+aes(x=country,y = conversion_rate)+geom_bar() ข้อผิดพลาด: stat_count() must not …
92 r  ggplot2  bar-chart 

3
จัดกลุ่มตามสองคอลัมน์ใน ggplot2
เป็นไปได้ไหมที่จะจัดกลุ่มตามสองคอลัมน์ ดังนั้นผลิตภัณฑ์ไขว้จึงถูกวาดโดยgeom_point()และgeom_smooth()? ดังตัวอย่าง: frame <- data.frame( series <- rep(c('a', 'b'), 6), sample <- rep(c('glass','water', 'metal'), 4), data <- c(1:12)) ggplot(frame, aes()) # ... ดังกล่าวว่าจุด6และ12แบ่งปันกลุ่ม 3แต่ไม่ได้มี
91 r  ggplot2 

4
อธิบายคำเตือน ggplot2: "ลบ k แถวที่มีค่าที่ขาดหายไป"
ggplotฉันได้รับการเตือนนี้เมื่อฉันพยายามที่จะสร้างพล็อตด้วย หลังจากค้นคว้าข้อมูลทางออนไลน์มาระยะหนึ่งหลายคนแนะนำว่าฐานข้อมูลของฉันมีค่าว่างหรือข้อมูลที่ขาดหายไปโดยทั่วไปซึ่งไม่เป็นเช่นนั้น ในคำถามนี้คำตอบที่ยอมรับมีดังต่อไปนี้: คำเตือนหมายความว่าองค์ประกอบบางส่วนจะถูกลบออกเนื่องจากอยู่นอกช่วงที่ระบุ ฉันสงสัยว่าช่วงนี้อ้างถึงอะไรกันแน่และใครบางคนสามารถเพิ่มช่วงนี้ด้วยตนเองเพื่อหลีกเลี่ยงคำเตือนทั้งหมดได้อย่างไร
90 r  ggplot2 

7
ฉันจะแยกช่วงของแกนพล็อตสำหรับออบเจ็กต์ ggplot2 ได้อย่างไร
ฉันมีวัตถุจากggplot2พูดmyPlotว่าฉันจะระบุช่วงของแกน x และ y ได้อย่างไร ดูเหมือนว่าจะไม่ใช่ช่วงของค่าข้อมูลแบบพหุคูณอย่างง่าย ๆ เพราะเราสามารถปรับขนาดพล็อตแก้ไขช่วงแกนและอื่น ๆ ได้ findFn(จากsos) และ Google ดูเหมือนจะไม่แสดงผลลัพธ์ที่เกี่ยวข้องนอกเหนือจากวิธีตั้งค่าช่วงของแกน
90 r  ggplot2 

7
จะเพิ่มคำบรรยาย ggplot2 ที่มีขนาดและสีต่างกันได้อย่างไร?
ฉันใช้ ggplot2 เพื่อปรับปรุงบาร์พล็อตการตกตะกอน นี่คือตัวอย่างที่ทำซ้ำได้ของสิ่งที่ฉันต้องการบรรลุ: library(ggplot2) library(gridExtra) secu <- seq(1, 16, by=2) melt.d <- data.frame(y=secu, x=LETTERS[1:8]) m <- ggplot(melt.d, aes(x=x, y=y)) + geom_bar(fill="darkblue") + labs(x="Weather stations", y="Accumulated Rainfall [mm]") + opts(axis.text.x=theme_text(angle=-45, hjust=0, vjust=1), title=expression("Rainfall"), plot.margin = unit(c(1.5, 1, 1, 1), "cm"), plot.title = theme_text(size = 25, face = "bold", colour = …
89 r  ggplot2  subtitle 

3
วิธีแก้ไขอัตราส่วนภาพใน ggplot
ฉันกำลังพยายามปรับขนาดพล็อตเพื่อให้พอดีกับเอกสารของฉัน แต่ฉันมีปัญหาในการทำให้ไดอะแกรมพล็อตเป็นสี่เหลี่ยมจัตุรัส ตัวอย่าง: pdf(file = "./out.pdf", width = 5, height = 5) p <- ggplot(mydata, aes(x = col1, y = col2)) print(p) aux <- dev.off() แม้ว่าขีด จำกัด สำหรับ x และ y จะเหมือนกัน แต่พล็อตในผลลัพธ์จะไม่เป็นกำลังสอง ฉันเดาว่า R สร้างแผงปิด 5x5 "แต่ไม่สนใจขนาดไดอะแกรมจริง ฉันจะยกเลิกการเรียงลำดับไดอะแกรมของฉันได้อย่างไร
89 r  ggplot2 

9
วิธีแสดงเฉพาะค่าจำนวนเต็มบนแกนโดยใช้ ggplot2
ฉันมีพล็อตต่อไปนี้: library(reshape) library(ggplot2) library(gridExtra) require(ggplot2) data2<-structure(list(IR = structure(c(4L, 3L, 2L, 1L, 4L, 3L, 2L, 1L ), .Label = c("0.13-0.16", "0.17-0.23", "0.24-0.27", "0.28-1" ), class = "factor"), variable = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L), .Label = c("Real queens", "Simulated individuals" ), class = "factor"), value = c(15L, 11L, …
88 r  ggplot2 

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