จะใช้ ggplot2 เพื่อสร้างกราฟวงกลมได้อย่างไร

ฉันมีเวกเตอร์ของค่าที่ฉันต้องการแสดงเป็นแผนภูมิวงกลม เวกเตอร์ประกอบด้วย 1, 2 และ 3 และฉันต้องการให้แผนภูมิวงกลมแสดงเปอร์เซ็นต์ของ 1, 2 และ 3 ในเวกเตอร์ นอกเหนือจากป้ายกำกับสำหรับพื้นที่ กลุ่มที่ 1 ได้แก่ เดโมแครต กลุ่มที่ 2 คือรีพับลิกัน และกลุ่มอิสระที่ 3 เวกเตอร์ที่ฉันทำงานด้วยคือคอลัมน์ของดาต้าเฟรม อาจมีปัญหาบางประเภท แม้ว่าฉันจะส่งผ่านโดยใช้ as.numeric() และ as.factor()

นี่คือตัวอย่างของ df (หมายเหตุ อย่างที่คุณเห็นในโค้ด ฉันสนใจคอลัมน์ Q7):

  Q6 Q7 Q8 Q9
3 30  3  5  1
4 30  3  5  1
5 65  3  2  2
6 29  3  5  1
7 23  1  4  1
8 24  1  5  1

นี่คือรหัสที่ฉันได้ลอง:

install.packages('ggplot2')
library(ggplot2)

# pie graph for party
pie <- ggplot(data=data, aes(x = as.factor(data$Q7), fill = factor(cyl)))
pie + coord_polar(theta = "y")

มันส่งคืนข้อผิดพลาด: 'ไม่มีเลเยอร์ในพล็อต'

ขอบคุณสำหรับความช่วยเหลือ!


person goldisfine    schedule 07.12.2013    source แหล่งที่มา
comment
สำหรับการแสดงเปอร์เซ็นต์คุณสามารถไปที่คำถามอื่นนี้: stackoverflow.com/questions/8952077/   -  person pandorabob    schedule 04.11.2014
comment
ตามที่ R พูดตัวเองในคู่มือ Pie Charts : แผนภูมิวงกลมเป็นวิธีการแสดงข้อมูลที่ไม่ดีนัก ตาเก่งในการตัดสินการวัดเชิงเส้น และไม่ดีในการตัดสินพื้นที่สัมพันธ์กัน แผนภูมิแท่งหรือแผนภูมิจุดเป็นวิธีที่ดีกว่าในการแสดงข้อมูลประเภทนี้ พวกเขาอ้างถึง Cleveland และคณะ (1985) แนะนำเป็นอย่างยิ่ง   -  person MS Berends    schedule 10.05.2017


คำตอบ (1)


แผนภูมิเชิงขั้วใน ggplot จะได้รับการแปลงแผนภูมิแท่งแบบเรียงซ้อนโดยทั่วไป ดังนั้นคุณต้อง geom_bar เพื่อให้ใช้งานได้ เราจะใช้กลุ่มเดียว (x = factor(1)) เพื่อนำค่าทั้งหมดมารวมกัน และใช้ fill ในคอลัมน์ที่สนใจเพื่อแบ่งพื้นที่ ณ จุดนี้ คุณจะได้แผนภูมิแท่งที่มีแท่งเดียว

bar <- ggplot(data, aes(x = factor(1), fill = factor(Q7))) + geom_bar(width = 1)
bar

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

สิ่งที่เหลืออยู่คือการเพิ่ม coord_polar:

pie <- bar + coord_polar(theta = "y")
pie

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

คุณสามารถเพิ่ม theme_void() เพื่อวางแกนและป้ายกำกับ:

pie + coord_polar(theta = "y") + theme_void()

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

person zero323    schedule 07.12.2013
comment
ฉันคิดว่าเห็นได้ชัดจากผลลัพธ์ที่ ggplot ไม่รองรับแผนภูมิวงกลม ลองดู rgm3.lab ทางเลือกเหล่านี้ nig.ac.jp/RGM/R_rdfile?f=graphics/man/ , rgm3.lab.nig.ac.jp/RGM/R_rdfile?f=plotrix/man/ - person George Dontas; 07.12.2013