在ggplot2和其他R图形中创建新的形状调色板

5
我希望能够为ggplot2指定自己的形状调色板,至少作为输入向量传递给scale_shape_manual。我真的很喜欢JMP的成对形状调色板,但是注意到R中缺少一些这些形状。特别是侧向三角形(例如| ><|)或填充的倒置三角形(例如\/)丢失了。这些有没有可以使用的方式?如果没有,如何指定这些额外的形状,并且是否有办法让 ggplot2 在绘图中使用它们?
1个回答

21

通过指定所需字符的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字符都能正确地呈现。我不确定原因,但可能与您安装了哪些字体有关。


2
相关地,我找到了两个包来帮助处理特殊符号、字体和表情符号:https://cran.r-project.org/web/packages/emojifont/vignettes/emojifont.html(作者Y.X. Qiu)和https://github.com/dill/emoGG/issues(作者D.L.Miller)。 - PatrickT
我注意到在我的系统上,“R”控制台中没有出现红色和绿色符号(在PDF中也没有打印出来),而在“RStudio”控制台中它们是有的,但是即使使用“cairo_pdf”或“cairo_ps”设备,这4个符号也没有被打印出来…… 目前唯一的选择是以PNG格式打印。 - PatrickT
2
@PatrickT 我也注意到了这一点。在某些情况下,您可以通过指定不同的字体来使符号出现。这里有一个例子,我就是这样做的。 extrafont可用于添加新字体。 - eipi10
谢谢eipi10,非常有用! - PatrickT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接