R 如何使用unicode箭头导出高分辨率ggplot图形

R 如何使用unicode箭头导出高分辨率ggplot图形,r,ggplot2,cairo,R,Ggplot2,Cairo,我正在努力导出以下带有Unicode箭头的ggplot2图形图例。 这是绘图缩放输出 用于创建此图例的代码如下所示: legend <- ggplot() + geom_tile( data = bivariate_color_scale, mapping = aes( x = gini, y = mean, fill = fill) ) + scale_fill_identity() + labs(y ="Hi

我正在努力导出以下带有Unicode箭头的ggplot2图形图例。 这是绘图缩放输出

用于创建此图例的代码如下所示:

legend <- ggplot() +
  geom_tile(
    data = bivariate_color_scale,
    mapping = aes(
      x = gini,
      y = mean,
      fill = fill)
  ) +
  scale_fill_identity() +
  labs(y ="Higher bus. density →",
       x = "Higher patent growth →", 
       title = "Legend") +
  theme_minimal()+
  theme(
    panel.grid.minor = element_blank(), 
    panel.grid.major = element_blank(), 
    axis.line = element_blank(),
    axis.ticks = element_blank(),
    panel.border = element_blank(),
    axis.text.x = element_blank(),
    axis.text.y = element_blank() 
    ) +
  # make font small enough
  theme(axis.title = element_text(size = 8)) +
  # quadratic tiles
  coord_fixed()
而且

ggsave(filename="legend.pdf",
       plot = legend, 
       dpi = 300, 
       device = cairo_pdf,
       width = 210, 
       height = 180, 
       units = "mm"
       )
两个代码都没有正确翻译/保存Unicode箭头,请参见以下输出

有没有人对我如何使用Unicode箭头以高分辨率导出此图形提出建议? 先谢谢你

资料


对于Unicode字符的显示,您可以使用expression,或者我的首选项使用sprintf,然后使用序言调用与文本内联的字符\u。请参见以下示例:

df <- data.frame(x=1:10, y=1:10)

ggplot(df, aes(x,y)) + geom_point() +
  labs(
    title=paste("This Title has an up arrow!", sprintf('\u2191')),
    x=paste('The x axis goes this way:', sprintf('\u2794')),
    y=paste('The y axis is this way:',sprintf('\u2190'))
  )

对于Unicode字符的显示,您可以使用expression,或者我的首选项使用sprintf,然后使用序言调用与文本内联的字符\u。请参见以下示例:

df <- data.frame(x=1:10, y=1:10)

ggplot(df, aes(x,y)) + geom_point() +
  labs(
    title=paste("This Title has an up arrow!", sprintf('\u2191')),
    x=paste('The x axis goes this way:', sprintf('\u2794')),
    y=paste('The y axis is this way:',sprintf('\u2190'))
  )

基本问题是,您需要使用一种实际包含要显示的unicode符号的字体。您没有指定特定的字体,因此图形设备可以自由选择,png和pdf都选择没有符号的Helvetica。交互式设备可能会选择Arial When you on Windows?,它确实有这个符号

代码设置 图书馆GGPLOT2
双变量颜色比例基本问题是,您需要使用实际包含要显示的unicode符号的字体。您没有指定特定的字体,因此图形设备可以自由选择,png和pdf都选择没有符号的Helvetica。交互式设备可能会选择Arial When you on Windows?,它确实有这个符号

代码设置 图书馆GGPLOT2
双变量颜色比例这似乎是字体问题。我无法在我的机器上复制它。要尝试的两件事是1,而不是在字符串use\U2192中使用箭头符号。2尝试不同的字体系列-也许可以尝试MeText=element\u textfamily=Serifal。因此,您更有可能获得有关可复制示例的帮助。我在你问题的底部添加了一些数据,这些数据可以与你的代码一起用于重新创建绘图。这可能是字体问题。我无法在我的机器上复制它。要尝试的两件事是1,而不是在字符串use\U2192中使用箭头符号。2尝试不同的字体系列-也许可以尝试MeText=element\u textfamily=Serifal。因此,您更有可能获得有关可复制示例的帮助。我已经在你问题的底部添加了一些数据,这些数据可以与你的代码一起用于重新创建绘图。很抱歉回答得太晚。这工作做得非常好:很抱歉反应太晚。这样做效果非常好:
df <- data.frame(x=1:10, y=1:10)

ggplot(df, aes(x,y)) + geom_point() +
  labs(
    title=paste("This Title has an up arrow!", sprintf('\u2191')),
    x=paste('The x axis goes this way:', sprintf('\u2794')),
    y=paste('The y axis is this way:',sprintf('\u2190'))
  )