มีคนถามมาว่าถ้าจะพิมพ์ภาษาไทยในกราฟที่สร้างจาก ggplot แล้ว save เป็น pdf ต้องทำอย่างไร เพราะที่ทำมามันไม่แสดงผลอะไรเลย
วิธีที่ง่ายที่สุด(ที่ผมใช้อยู่)ตอนนี้ก็คือใช้ package ที่ชื่อ extrafont ช่วยครับ ตามนี้
- ติดตั้ง package ที่ชื่อว่า extrafont หลังจากนั้นก็ load package ด้วยคำสั่ง library
- ทำการ import fonts ที่มีในคอมพิวเตอร์ด้วยเพื่อสร้างฐานข้อมูล fonts ของ package นี้ ด้วยคำสั่ง font_import() ทำครั้งแรกนี้ครั้งเดียวครับ อาจจะใช้เวลานานหน่อย แต่ถ้ามีการลงฟอนท์เพิ่มก็ต้องมารันคำสั่งนี้อีกนะครับ
- ลองพิมพ์คำสั่ง fonts() ดูครับว่ามัน import ฟอนท์อะไรเสร็จไปแล้วบ้าง
- จากนั้นก็ทำการ load fonts เพื่อเอามาใช้กับเอกสาร pdf ที่จะสร้างครับ ด้วยคำสั่ง loadfonts() (คราวหน้าก็ไม่ต้องใช้คำสั่งนี้ครับ สามารถเรียก library(extrafont) ได้เลย มันจะทำให้อัตโนมัต) โดยค่าที่ตั้งไว้แล้ว(default) มันจะโหลดไปใช้กับตัวpdfครับ แต่ถ้าอยากจะให้มันแสดงผลและใช้ได้กับพวกไฟล์ภาพอย่าง png ก็ตั้งมีการเซ็ตค่าพารามิเตอร์ device=”win”ครับ สำหรับใช้งานบนวินโดว์ (ลองดูในตัวอย่างcodeที่ผมพิมพ์นะครับ)
- ทดลองสร้างกราฟด้วย ggplot แล้ว save ป็น pdf
library(extrafont) library(ggplot2) loadfonts(device="win") loadfonts(device="pdf") p <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() + ggtitle("ประสิทธิภาพของเชื้อเพลิง") + xlab("น้ำหนัก (x1000 ปอนด์)") + ylab("ไมล์ต่อแกลอน") + theme(text=element_text(size=16, family="TH Mali Grade 6")); p ggsave("THfont_ggplot.pdf", plot=p, width=4, height=4, device = cairo_pdf)