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

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

1
จำกัด ggplot2 แกนโดยไม่ต้องลบข้อมูล (นอกขีด จำกัด ): ซูม
หากคุณระบุขีด จำกัด แกนใน ggplot จุดรอบนอกจะถูกลบออก วิธีนี้ใช้ได้ดีสำหรับจุด แต่คุณอาจต้องการพล็อตเส้นที่ตัดกับช่วงที่ระบุ แต่ ggplot rangeหรือxlim/ylimวิธีการจะลบสิ่งเหล่านี้ มีวิธีอื่นในการระบุช่วงแกนของพล็อตโดยไม่ต้องลบข้อมูลภายนอกหรือไม่? เช่น require(ggplot2) d = data.frame(x=c(1,4,7,2,9,7), y=c(2,5,4,10,5,3), grp=c('a','a','b','b','c','c')) ggplot(d, aes(x, y, group=grp)) + geom_line() ggplot(d, aes(x, y, group=grp)) + geom_line() + scale_y_continuous(limits=c(0,7)) ggplot(d, aes(x, y, group=grp)) + geom_line() + ylim(0,7)
106 r  ggplot2  zoom  limits 

9
จัดชิดขอบกราฟสองด้านซ้าย (ggplot)
ฉันใช้ ggplot และมีกราฟสองกราฟที่ฉันต้องการแสดงด้านบนของกันและกัน ฉันใช้grid.arrangeจาก gridExtra เพื่อวางซ้อนกัน ปัญหาคือฉันต้องการให้ขอบด้านซ้ายของกราฟจัดแนวเช่นเดียวกับขอบด้านขวาโดยไม่คำนึงถึงป้ายกำกับแกน (ปัญหาเกิดขึ้นเนื่องจากป้ายกำกับของกราฟหนึ่งสั้นในขณะที่อีกกราฟหนึ่งยาว) คำถาม: ฉันจะทำสิ่งนี้ได้อย่างไร? ฉันไม่ได้แต่งงานกับกริดจัด แต่ ggplot2 เป็นสิ่งจำเป็น สิ่งที่ฉันได้ลอง: ฉันลองเล่นกับความกว้างและความสูงเช่นเดียวกับ ncol และ nrow เพื่อสร้างตาราง 2 x 2 และวางภาพในมุมตรงข้ามจากนั้นเล่นกับความกว้าง แต่ฉันไม่สามารถรับภาพในมุมตรงข้ามได้ . require(ggplot2);require(gridExtra) A <- ggplot(CO2, aes(x=Plant)) + geom_bar() +coord_flip() B <- ggplot(CO2, aes(x=Type)) + geom_bar() +coord_flip() grid.arrange(A, B, ncol=1)
105 r  ggplot2  gridextra  gtable 

4
จะใช้สัญลักษณ์กรีกใน ggplot2 ได้อย่างไร?
หมวดหมู่ของฉันต้องตั้งชื่อด้วยตัวอักษรกรีก ฉันใช้ggplot2งานอยู่และใช้งานได้ดีกับข้อมูล น่าเสียดายที่ฉันไม่สามารถหาวิธีใส่สัญลักษณ์กรีกเหล่านั้นบนแกน x ได้ (ที่เครื่องหมายถูก) และทำให้มันปรากฏในคำอธิบายแผนภูมิ มีวิธีใดบ้างที่จะทำได้? อัปเดต: ฉันได้ดูลิงก์แล้วอย่างไรก็ตามไม่มีวิธีการที่ดีที่อธิบายถึงการบรรลุสิ่งที่ฉันต้องการ
105 r  graphics  unicode  utf-8  ggplot2 

2
วิธีใส่ป้ายกำกับบน geom_bar สำหรับแต่ละแถบใน R ด้วย ggplot2
ฉันพบสิ่งนี้วิธีใส่ป้ายกำกับบน geom_bar ใน R ด้วย ggplot2แต่เพียงแค่ใส่ป้ายกำกับ (ตัวเลข) ไว้บนแถบเดียวเท่านั้น นี่คือสมมุติว่าแท่งสองแท่งสำหรับแต่ละแกน x จะทำสิ่งเดียวกันได้อย่างไร? ข้อมูลและรหัสของฉันมีลักษณะดังนี้: dat <- read.table(text = "sample Types Number sample1 A 3641 sample2 A 3119 sample1 B 15815 sample2 B 12334 sample1 C 2706 sample2 C 3147", header=TRUE) library(ggplot2) bar <- ggplot(data=dat, aes(x=Types, y=Number, fill=sample)) + geom_bar(position = 'dodge') + …
105 r  ggplot2  bar-chart 

7
ลบเส้นตารางสีพื้นหลังและเส้นขอบด้านบนและด้านขวาออกจาก ggplot2
ฉันต้องการทำซ้ำพล็อตด้านล่างทันทีโดยใช้ ggplot2 ฉันสามารถเข้ามาใกล้ได้ แต่ไม่สามารถลบเส้นขอบด้านบนและด้านขวาได้ ด้านล่างนี้ฉันนำเสนอความพยายามหลายครั้งโดยใช้ ggplot2 รวมถึงคำแนะนำหลายอย่างที่พบในหรือผ่าน Stackoverflow น่าเสียดายที่ฉันไม่สามารถรับคำแนะนำเหล่านั้นในการทำงานได้ ฉันหวังว่าอาจมีคนแก้ไขข้อมูลโค้ดด้านล่างได้อย่างน้อยหนึ่งรายการ ขอบคุณสำหรับคำแนะนำใด ๆ # desired plot a <- seq(1,20) b <- a^0.25 plot(a,b, bty = "l") library(ggplot2) df <- as.data.frame(cbind(a,b)) # 1. ggplot2 default ggplot(df, aes(x = a, y = b)) + geom_point() # 2. removes background color ggplot(df, aes(x = …
104 r  ggplot2 

8
วิธีเพิ่มพื้นผิวเพื่อเติมสีใน ggplot2
ฉันกำลังใช้scale_brewer()สำหรับเติมสีและสีเหล่านี้ดูสวยงาม (บนหน้าจอและผ่านเครื่องพิมพ์สี) แต่พิมพ์ค่อนข้างสม่ำเสมอเป็นสีเทาเมื่อใช้เครื่องพิมพ์ขาวดำ ฉันค้นหาggplot2เอกสารออนไลน์แต่ไม่เห็นอะไรเกี่ยวกับการเพิ่มพื้นผิวเพื่อเติมสี มีggplot2วิธีอย่างเป็นทางการในการทำเช่นนี้หรือใครมีแฮ็คที่พวกเขาใช้? ตามพื้นผิวฉันหมายถึงสิ่งต่างๆเช่นแท่งทแยงมุมแท่งทแยงมุมย้อนกลับรูปแบบจุด ฯลฯ ที่จะแยกสีเติมเมื่อพิมพ์เป็นขาวดำ
103 r  ggplot2 

3
จะจัดการกับข้อผิดพลาด "data of class unval" จาก ggplot2 ได้อย่างไร
ในขณะที่พยายามซ้อนทับบรรทัดใหม่ไปยัง ggplot ที่มีอยู่ฉันได้รับข้อผิดพลาดต่อไปนี้: Error: ggplot2 doesn't know how to deal with data of class uneval ส่วนแรกของรหัสของฉันทำงานได้ดี ด้านล่างนี้คือภาพข้อมูลการสร้างลมรายชั่วโมง "ล่าสุด" จากตลาดพลังงานไฟฟ้าในแถบมิดเวสเทิร์นของสหรัฐอเมริกา ตอนนี้ฉันต้องการซ้อนทับค่าสังเกตสองวันที่ผ่านมาด้วยสีแดง มันควรจะง่าย แต่ฉันคิดไม่ออกว่าทำไมฉันถึงได้รับข้อผิดพลาด ความช่วยเหลือใด ๆ จะได้รับการชื่นชมอย่างมาก ด้านล่างนี้เป็นตัวอย่างที่ทำซ้ำได้: # Read in Wind data fname <- "https://www.midwestiso.org/Library/Repository/Market%20Reports/20130510_hwd_HIST.csv" df <- read.csv(fname, header=TRUE, sep="," , skip=7) df <- df[1:(length(df$MKTHOUR)-5),] # format variables df$MWh <- as.numeric(df$MWh) …
101 r  ggplot2 

2
วิธีเปลี่ยนขนาดฟอนต์เริ่มต้นใน ggplot2
ฉันต้องการทราบว่าเป็นไปได้ไหมที่จะเปลี่ยนพารามิเตอร์เริ่มต้นของggplot2กราฟิกเช่นขนาดตัวอักษรสำหรับเซสชัน R ทั้งหมด แนวคิดคือหลีกเลี่ยงการตั้งค่าสำหรับแต่ละพล็อต
101 r  ggplot2  default  font-size 

3
ฉันจะเปลี่ยนสีพื้นหลังของพล็อตที่สร้างด้วย ggplot2 ได้อย่างไร
ตามค่าเริ่มต้น ggplot2 จะสร้างพล็อตที่มีพื้นหลังสีเทา ฉันจะเปลี่ยนสีพื้นหลังของพล็อตได้อย่างไร? ตัวอย่างเช่นพล็อตที่สร้างโดยรหัสต่อไปนี้: library(ggplot2) myplot<-ggplot(data=data.frame(a=c(1,2,3), b=c(2,3,4)), aes(x=a, y=b)) + geom_line() myplot
101 r  ggplot2 

3
ฉันจะจัดการข้อความแถบของแปลง facet_grid ได้อย่างไร
ฉันสงสัยว่าฉันจะจัดการขนาดของข้อความแถบในแปลงเหลี่ยมเพชรพลอยได้อย่างไร คำถามของฉันคล้ายกับคำถามเกี่ยวกับชื่อเรื่องแต่ฉันกังวลเป็นพิเศษกับการจัดการไม่ใช่ชื่อเรื่อง แต่เป็นข้อความที่ปรากฏในชื่อแง่มุม (strip_h) ตัวอย่างเช่นพิจารณาชุดข้อมูล mpg library(ggplot2) qplot(hwy, cty, data = mpg) + facet_grid( . ~ manufacturer) ส่งผลให้การส่งออกผลิตชื่อแง่มุมบางส่วนที่ไม่พอดีกับแถบ ฉันคิดว่าต้องมีวิธีใช้gridจัดการกับแถบข้อความ แต่ฉันยังเป็นมือใหม่และไม่แน่ใจจากgridภาคผนวกในหนังสือของ Hadleyว่าต้องทำอย่างไร นอกจากนี้ฉันกลัวว่าถ้าฉันทำผิดมันจะทำให้เครื่องซักผ้าของฉันพังเพราะฉันเชื่อว่าเทคโนโลยีทั้งหมดเชื่อมต่อผ่าน The Force :-( ขอบคุณมากล่วงหน้า
100 r  ggplot2 

4
ggplot2 เก็บระดับ barplot ที่ไม่ได้ใช้
ฉันต้องการพล็อตระดับที่ไม่ได้ใช้ (นั่นคือระดับที่นับเป็น 0) ในพล็อตบาร์ของฉันอย่างไรก็ตามระดับที่ไม่ได้ใช้จะหลุดออกไปและฉันไม่สามารถหาวิธีรักษาได้ df <- data.frame(type=c("A", "A", "A", "B", "B"), group=rep("group1", 5)) df$type <- factor(df$type, levels=c("A","B", "C")) ggplot(df, aes(x=group, fill=type)) + geom_bar() ในตัวอย่างข้างต้นฉันต้องการเห็น C พล็อตด้วยจำนวน 0 แต่มันขาดไปโดยสิ้นเชิง ... ขอบคุณสำหรับความช่วยเหลือใด ๆ Ulrik แก้ไข: นี่คือสิ่งที่ฉันต้องการ df <- data.frame(type=c("A", "A", "A", "B", "B"), group=rep("group1", 5)) df1 <- data.frame(type=c("A", "A", "A", "B", "B", …
100 r  ggplot2  legend  levels 

1
ตำแหน่ง geom_text บนบาร์พล็อตที่หลบ
ฉันพยายามทำให้ชื่ออธิบายตัวเอง แต่นี่ไป - ข้อมูลก่อน: dtf <- structure(list(variable = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L), .Label = c("vma", "vla", "ia", "fma", "fla"), class = "factor"), ustanova = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("srednja škola", "fakultet"), class = "factor"), `(all)` = …
99 r  plot  ggplot2  bar-chart 

6
การเลือกระหว่าง qplot () และ ggplot () ใน ggplot2 [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังเริ่มใช้ggplot2แพ็กเกจที่ยอดเยี่ยมสำหรับการวางแผนใน R และสิ่งแรกที่ฉันถามตัวเองก่อนที่แต่ละพล็อตคือ"ดีฉันจะใช้qplotหรือggplot?" ฉันเข้าใจว่าqplotมีไวยากรณ์ที่ง่ายกว่าในขณะที่ggplotให้คุณสมบัติและความยืดหยุ่นสูงสุด แต่ฟังก์ชันใดที่คุณใช้มากที่สุดและคุณมีกรณีการใช้งานที่แม่นยำสำหรับแต่ละฟังก์ชันหรือไม่ คุณใช้เป็นส่วนใหญ่qplotและggplotเฉพาะสำหรับพล็อตที่ซับซ้อนหรือคุณใช้ggplotทุกครั้ง? ขอบคุณสำหรับคำติชม!
98 r  ggplot2 

2
แก้ไขลำดับของแง่มุมใน ggplot
ข้อมูล: df <- data.frame( type = c("T", "F", "P", "T", "F", "P", "T", "F", "P", "T", "F", "P"), size = c("50%", "50%", "50%", "100%", "100%", "100%", "150%", "150%", "150%", "200%", "200%", "200%"), amount = c(48.4, 48.1, 46.8, 25.9, 26, 24.9, 21.1, 21.4, 20.1, 20.8, 21.5, 16.5) ) ฉันต้องการพล็อตกราฟแท่งของข้อมูลข้างต้นโดยใช้ ggplot (แกน …
97 r  ggplot2  sequence  facet 

5
การเปลี่ยนฟอนต์ใน ggplot2
กาลครั้งหนึ่งฉันเปลี่ยนggplot2แบบอักษรโดยใช้windowsFonts(Times=windowsFont("TT Times New Roman"))การเปลี่ยน ตอนนี้ฉันไม่สามารถตัดใจจากเรื่องนี้ได้ ในการพยายามตั้งค่าfamily=""ในggplot2 theme()ฉันดูเหมือนจะไม่สามารถสร้างการเปลี่ยนแปลงในแบบอักษรได้เนื่องจากฉันรวบรวม MWE ด้านล่างด้วยตระกูลแบบอักษรที่แตกต่างกัน library(ggplot2) library(extrafont) loadfonts(device = "win") a <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() + ggtitle("Fuel Efficiency of 32 Cars") + xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") + theme(text=element_text(size=16, # family="Comic Sans MS")) # family="CM Roman")) # family="TT Times New Roman")) # …

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