วิธีสร้างแผนภูมิแกนต์ใน r โดยใช้ ggplot2


แผนภูมิแกนต์ เป็นแผนภูมิประเภทหนึ่งที่แสดงเวลาเริ่มต้นและสิ้นสุดของเหตุการณ์ต่างๆ

บทช่วยสอนนี้จะอธิบายวิธีสร้างแผนภูมิแกนต์ใน R โดยใช้แพ็คเกจ ggplot2

การสร้างแผนภูมิแกนต์ใน R โดยใช้ ggplot2

สมมติว่าเรามีชุดข้อมูลต่อไปนี้ที่แสดงเวลาเริ่มต้นและสิ้นสุดของกะของผู้ปฏิบัติงานที่แตกต่างกันสี่กะที่ร้านค้า:

 #create data frame
data <- data.frame(name = c('Bob', 'Greg', 'Mike', 'Andy'), 
start = c(4, 7, 12, 16),
end = c(12, 11, 8, 22),
shift_type = c('early', 'mid_day', 'mid_day', 'late')
)
data

# name start end shift_type
#1 Bob 4 12 early
#2 Greg 7 11 mid_day
#3 Mike 12 8 mid_day
#4 Andy 16 22 late

ในการสร้างแผนภูมิแกนต์โดยใช้ ggplot2 ที่แสดงภาพเวลาเริ่มต้นและสิ้นสุดของผู้ปฏิบัติงานแต่ละคน เราสามารถใช้โค้ดต่อไปนี้:

 #install (if not already installed) and load ggplot2
if(!require(ggplot2)){install.packages('ggplot2')}

#create gantt chart that visualizes start and end time for each worker
ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
  geom_segment()

ซึ่งจะสร้างแผนภูมิแกนต์ต่อไปนี้:

ด้วยการปรับแต่งเค้าโครงเล็กน้อย เราสามารถทำให้แผนภูมิ Gantt ดูดีขึ้นได้มาก:

 ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
theme_bw()+ #use ggplot theme with black gridlines and white background
geom_segment(size=8) + #increase line width of segments in the chart
labs(title='Worker Schedule', x='Time', y='Worker Name')

สิ่งนี้จะสร้างกราฟต่อไปนี้:

นอกจากนี้ หากคุณต้องการตั้งค่าสีที่แน่นอนเพื่อใช้ในแผนภูมิ คุณสามารถใช้โค้ดต่อไปนี้:

 ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
  theme_bw()+ #use ggplot theme with black gridlines and white background
  geom_segment(size=8) + #increase line width of segments in the chart
  labs(title='Worker Schedule', x='Time', y='Worker Name') +
  scale_color_manual(values = c('pink', 'purple', 'blue'))

ซึ่งจะสร้างกราฟต่อไปนี้โดยมีสีชมพู สีม่วง และสีน้ำเงินเพื่อแสดงประเภทกะต่างๆ:

ใช้ธีมที่กำหนดเอง

เราสามารถพัฒนาต่อไปได้โดยใช้ธีมที่กำหนดเองจากไลบรารี ggthemes

ตัวอย่างเช่น เราสามารถสร้างแผนภูมิแกนต์ที่ใช้ธีมที่ได้รับแรงบันดาลใจจาก Wall Street Journal:

 #load ggthemes library
library(ggthemes)

#create scatterplot with Wall Street Journal theme
ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
  theme_bw()+
  geom_segment(size=8) +
  labs(title='Worker Schedule', x='Time', y='Worker Name') +
  scale_color_manual(values = c('pink', 'purple', 'blue')) +
  theme_wsj() + 
  theme(axis.title = element_text())

หรือเราอาจใช้ธีมที่ได้รับแรงบันดาลใจจาก The Economist:

 ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
  theme_bw()+
  geom_segment(size=8) +
  labs(title='Worker Schedule', x='Time', y='Worker Name') +
  scale_color_manual(values = c('pink', 'purple', 'blue')) +
  theme_economist() + 
  theme(axis.title = element_text())

หรืออาจเป็นธีมที่ได้รับแรงบันดาลใจจาก Five Thirty Eight :

 ggplot(data, aes(x=start, xend=end, y=name, yend=name, color=shift_type)) +
  theme_bw()+
  geom_segment(size=8) +
  labs(title='Worker Schedule', x='Time', y='Worker Name') +
  scale_color_manual(values = c('pink', 'purple', 'blue')) +
  theme_fivethirtyeight() + 
  theme(axis.title = element_text())

หากต้องการดูรายการธีมทั้งหมดที่มีอยู่ในไลบรารี ggthemes โปรดดู ที่หน้าเอกสารประกอบ

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *