คู่มือฉบับสมบูรณ์เกี่ยวกับธีม ggplot2 ที่ดีที่สุด


บทช่วยสอนนี้จะให้คำแนะนำฉบับสมบูรณ์เกี่ยวกับธีม ggplot2 ที่ดีที่สุด ได้แก่:

  • วิธีเปลี่ยนรูปลักษณ์ของแปลงโดยใช้ธีม ggplot2 ในตัว
  • วิธีเปลี่ยนรูปลักษณ์ของแปลงโดยใช้ธีมที่กำหนดไว้ล่วงหน้าจากไลบรารี ggthemes
  • วิธีแก้ไขส่วนประกอบเฉพาะของธีม รวมถึงพื้นหลังแผงพาธและเส้นตาราง

วิธีเปลี่ยนรูปลักษณ์ของพล็อตโดยใช้ธีม ggplot2 ในตัว

สำหรับแต่ละตัวอย่างต่อไปนี้ เราจะใช้ม่านตาจากชุดข้อมูล R ที่ฝังไว้:

 #view first six rows of iris dataset
head(iris)

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa

ขั้นแรก เราจะโหลดไลบรารี ggplot2 และสร้าง Scatterplot ที่แสดง Sepal.Length บนแกน x และ Sepal.Width บนแกน y โดยให้ สีตามสปีชีส์:

 #load ggplot2 library
library(ggplot2)

#create scatterplot
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point()

ต่อไป เราจะแสดงให้เห็นว่าธีม ggplot2 ในตัวแต่ละธีมส่งผลต่อรูปลักษณ์ของโครงเรื่องอย่างไร

grey_theme

ธีมเริ่มต้นที่มีพื้นหลังสีเทาและตารางสีขาว

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_gray()

bw_theme

ธีมสีดำบนพื้นขาว

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_bw()

theme_linedraw

ธีมที่มีเพียงเส้นสีดำซึ่งมีความกว้างต่างกันบนพื้นหลังสีขาว

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_linedraw()

theme_light

ธีมที่คล้ายกับ theme_linedraw แต่มีเส้นสีเทาและแกนที่ออกแบบมาเพื่อดึงดูดความสนใจไปที่ข้อมูลมากขึ้น

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_light()

dark_theme

ธีมที่คล้ายกับ theme_light แต่มีพื้นหลังสีเข้ม ธีมที่มีประโยชน์ในการดึงเส้นสีที่ละเอียดออกมา

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_dark()

มินิมอล_ธีม

ธีมที่ไม่มีคำอธิบายประกอบในพื้นหลัง

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_minimal()

classic_theme

ธีมที่ไม่มีกริด

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_classic()

theme_void

ธีมที่ว่างเปล่าโดยสิ้นเชิง

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_void()

วิธีเปลี่ยนรูปลักษณ์ของแปลงโดยใช้ธีมที่กำหนดไว้ล่วงหน้าจากไลบรารี ggthemes

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

ขั้นแรก เราจะโหลดไลบรารี ggthemes:

 library(ggthemes)

จากนั้นเราจะแสดงตัวอย่างการใช้ธีมที่กำหนดไว้ล่วงหน้าเพื่อปรับเปลี่ยนความสวยงามของโครงเรื่อง:

theme_wsj

ธีมจาก Wall Street Journal

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_wsj()

theme_tufte

ธีมมินิมอลที่ได้รับแรงบันดาลใจจากผลงานของนักสถิติ Edward Tufte

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_tufte()

โซลาร์ไลซ์_ธีม

ธีมที่ใช้สีตาม Solarized Palette

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_solarized()

โปรดทราบว่าเรายังสามารถใช้อาร์กิวเมนต์ light = FALSE เพื่อใช้พื้นหลังสีเข้มบนโครงเรื่องได้:

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_solarized( light = FALSE )

theme_gdocs

ธีมที่มีค่าเริ่มต้นของ Google Docs Chart

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_gdocs()

theme_fivethirtyeight

ธีมที่ได้รับแรงบันดาลใจจากโครงเรื่องของ fivethirtyeight.com

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_fivethirtyeight()

theme_economist

ธีมที่ได้รับแรงบันดาลใจจาก The Economist

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme_economist()

วิธีแก้ไขส่วนประกอบเฉพาะของแปลง

เราสามารถใช้ฟังก์ชัน theme() และ element_rect() เพื่อเปลี่ยนสีพื้นหลังของพาเนลพล็อต:

 theme(panel.background = element_rect(fill, color, size))
  • เติม: เติมสีให้กับสี่เหลี่ยม
  • สี: สีขอบ
  • ขนาด: ขนาดเส้นขอบ

เรายังสามารถใช้ฟังก์ชัน element_line() เพื่อเปลี่ยนขนาดและลักษณะของตาราง:

 theme(panel.grid.major = element_line(color, size, linetype),
      panel.grid.minor = element_line(color, size, linetype))
  • สี: สีขอบ
  • ขนาด: ขนาดเส้นขอบ
  • linetype: linetype (“ว่างเปล่า”, “ทึบ”, “เส้นประ”, “ประ”, “จุดประ”, “เส้นประยาว”, “สองขีดกลาง”)

รหัสต่อไปนี้สาธิตวิธีการลบเส้นขอบแผงลงจุดและเส้นตาราง:

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme(panel.border = element_blank(),
  panel.grid.major = element_blank(),
  panel.grid.minor = element_blank())

รหัสต่อไปนี้สาธิตวิธีการเปลี่ยนพื้นหลังแผงลงจุดและเส้นตาราง:

 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  theme(
    panel.background = element_rect(fill = "powderblue",
    color = "powderblue",
    size = 0.5, linetype = "solid"),
    panel.grid.major = element_line(size = 0.5, linetype = 'solid', color = "white"),
    panel.grid.minor = element_line(size = 0.25, linetype = 'solid', color = "white")
  )

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

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