การสร้างจานสีรูปร่างใหม่ใน ggplot2 และกราฟิก R อื่น ๆ

ฉันต้องการระบุชุดสีรูปร่างของตัวเองสำหรับ ggplot2 อย่างน้อยเป็นเวกเตอร์สำหรับอินพุตใน scale_shape_manual ฉันชอบจานสีรูปร่างที่จับคู่จาก JMP มาก แต่สังเกตเห็นว่า R ไม่มีรูปร่างเหล่านี้บางส่วน โดยเฉพาะอย่างยิ่ง สามเหลี่ยมด้านข้าง (เช่น |> หรือ <|) หรือสามเหลี่ยมกลับหัวเต็ม (เช่น \/) หายไป สิ่งเหล่านี้มีจำหน่ายทุกที่หรือไม่? ถ้าไม่ ฉันจะระบุรูปร่างพิเศษเหล่านี้ได้อย่างไร และมีวิธีให้ ggplot2 ใช้ในแปลงหรือไม่


person wdkrnls    schedule 09.06.2015    source แหล่งที่มา


คำตอบ (1)


คุณสามารถสร้างจานรูปร่างของคุณเองได้โดยระบุค่า Unicode สำหรับอักขระที่คุณต้องการ คุณสามารถค้นหาค่า Unicode สำหรับรูปทรงเรขาคณิตต่างๆ ได้ที่นี่ ตัวอย่างเช่น:

library(ggplot2)

ggplot(mtcars[mtcars$carb %in% 1:4,], 
       aes(wt, mpg, shape=factor(carb), colour=factor(carb))) +
  geom_point(size=5) +
  scale_shape_manual(values=c("\u25BA","\u25C4","\u25BC","\u25B2"))

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

แน่นอนว่าคุณสามารถใช้อักขระ Unicode ในกราฟิกพื้นฐานได้เช่นกัน:

with(mtcars, plot(wt, mpg, pch="\u25BC"))

ไม่ใช่อักขระ Unicode ทุกตัวที่จะแสดงผลได้อย่างถูกต้อง ฉันไม่แน่ใจว่าทำไม แต่อาจเกี่ยวข้องกับแบบอักษรที่คุณติดตั้งไว้

person eipi10    schedule 09.06.2015
comment
ที่เกี่ยวข้องกัน ฉันพบแพ็คเกจสองแพ็คเกจเพื่อช่วยเกี่ยวกับสัญลักษณ์ แบบอักษร และอิโมจิพิเศษ: cran.r-project.org/web/packages/emojifont/vignettes/ (ผู้เขียน Y.X. Qiu) และ github.com/dill/emoGG/issues (ผู้เขียน D.L.Miller) - person PatrickT; 08.05.2016
comment
ฉันเพิ่งสังเกตเห็นว่าในระบบของฉัน สัญลักษณ์สีแดงและสีเขียวไม่ปรากฏในคอนโซล R (และไม่ได้รับการพิมพ์ในรูปแบบ PDF) ในขณะที่สัญลักษณ์เหล่านั้นปรากฏในคอนโซล RStudio แต่ไม่มีสัญลักษณ์ทั้ง 4 ตัวที่ได้รับ พิมพ์แล้วแม้จะมีอุปกรณ์ cairo_pdf หรือ cairo_ps ... ตัวเลือกเดียวเท่านั้นคือพิมพ์เป็น PNG - person PatrickT; 08.05.2016
comment
@PatrickT ฉันก็สังเกตเห็นสิ่งนี้เช่นกัน ในบางกรณี คุณสามารถทำให้สัญลักษณ์ปรากฏได้โดยการระบุแบบอักษรที่แตกต่างกัน นี่คือตัวอย่างที่ฉันทำเช่นนั้น extrafont package มีประโยชน์สำหรับการเพิ่มแบบอักษรใหม่ - person eipi10; 08.12.2016
comment
ขอบคุณ eipi10 มีประโยชน์มาก! - person PatrickT; 08.12.2016