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

wdk*_*nls 3 graphics r ggplot2

我想指定我自己的形状调色板ggplot2,至少作为输入的矢量scale_shape_manual.我非常喜欢JMP配对的形状调色板,但注意到R没有这些形状.特别地,缺少侧向三角形(例如|><|)或填充的倒置三角形(例如\/).这些可以随处使用吗?如果没有,我如何指定这些额外的形状,有没有办法ggplot2在图中使用它们?

eip*_*i10 15

您可以通过指定所需字符的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"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

当然,您也可以在基本图形中使用Unicode字符:

with(mtcars, plot(wt, mpg, pch="\u25BC"))
Run Code Online (Sandbox Code Playgroud)

并非每个Unicode字符都能正确呈现.我不知道为什么,但它可能与您安装的字体有关.

  • 相关地,我找到了两个包来帮助处理特殊符号、字体和表情符号:https://cran.r-project.org/web/packages/emojifont/vignettes/emojifont.html(作者 YX Qiu)和 https:// github.com/dill/emoGG/issues(作者 DLMiller) (2认同)
  • @PatrickT我也注意到了这一点.在某些情况下,您可以通过指定不同的字体来显示符号.[这是一个例子](http://stackoverflow.com/a/34083063/496488)我这样做了.[`extrafont`包](https://github.com/wch/extrafont/)对添加新字体很有用. (2认同)