在R geomtextpath中,是否不支持中文

In R geomtextpath, does it's not support chinese

‘geom_textpath’不支持中文吗?如下面的示例,当使用 geom_textpath 向绘图添加标签时,它只显示英文字母。任何人都可以帮忙吗?谢谢!

library(tidyverse)
library(geomtextpath)
plot_data_2 <- data.frame(category=c('品类A','品类B','品类C','品类D'),
                          amount=c(1,6,4,7))

plot_data_2 %>% ggplot(aes(x=1,y=amount,fill=category))+
  geom_col()+geom_textpath(position = position_stack(vjust=0.5),
                           aes(label=category))+
  coord_polar()

免责声明:我是 {geomtextpath} 的另一位作者。

这是字体回退问题。智能文本呈现器会尝试从字体文件中查找特定的字形,如果找不到,则用另一种确实具有该字形的字体替换该字体。因为 {geomtextpath} 必须执行 'convert font index back to glyph' 步骤,回退不起作用。

在这种情况下,最好的做法是明确使用支持汉字的字体。免费提供的 'Noto Sans TC' or 'Noto Sans Simplified Chinese' 字体应该可以,但我不知道繁体还是简体在这里更合适。

library(tidyverse)
library(geomtextpath)

# Didn't reprex well because glyphs below get substituted by `??`.
plot_data_2 <- data.frame(category=c('品类A','品类B','品类C','品类D'),
                          amount=c(1,6,4,7))

plot_data_2 %>% ggplot(aes(x=1,y=amount,fill=category))+
  geom_col()+geom_textpath(position = position_stack(vjust=0.5),
                           aes(label=category),
                           family = "Noto Sans TC")+
  coord_polar() +
  theme(legend.text = element_text(family = "Noto Sans TC"))