我在如下的R Markdown文档中写了一段使用ggplot2画图的代码。其中图形的标签是中文的。我想在html中输出svg矢量图。因此我使用了{r ,dev='svg'}。但knit后中文无法显示出来。COS论坛上这个六年前的帖子,似乎问了同样的问题,但没有给出具体方法。我经过百度、谷歌多次之后并未找到正确的方法。

期待各位大神的帮助!

---
title: "大众车定量"
subtitle: " "
author: " "
date: "2019/06/07"
output:
  html_document
---

# 购车放弃原因


```{r, echo=F,message=F,warning=F,fig.cap=" ", out.width = '100%',fig.align='center',fig.asp = 0.618,dev='svg'}
setwd("C:/Users/xsong/Desktop")
library(ggplot2)
library(readr)
bar <- read_csv("C:/Users/xsong/Desktop/bar.csv")
ggplot(bar,aes(reorder(tag,value),value,color=car,fill=car)) +
  geom_bar(stat = 'identity',width = 0.3,position = 'dodge') +
  coord_flip()+
  geom_text(aes(label = value,position='right',hjust=-1),size=2.7,color='black') +
  facet_wrap(~car, nrow = 1) +
  labs(x=" ",y=" ") + 
  theme_classic() +
  theme(legend.position='none')
```

最后输出的html如下所示

画图所用的数据已上传到这里

此外,恕我愚钝,我在网页版的《现代统计图形》第四章 无意间发现了一幅中文显示正确的SVG图:

经github查看源代码后,并未搞清如何实现。我相信这应该不是个困难问题。还劳烦有经验R用户点拨。

    png什么的格式中文能不能出来?
    如果可以的话就不用在svg这棵树上吊死了。一般学术期刊要求的格式只要不是jpg,png pdf eps之类都可以。svg格式见都没见过…

      tctcab PNG格式是可以显示中文的,但是十分模糊,字体难以看清,因此想使用SVG这样的矢量图格式。

      下面是PNG格式的输出效果:

      另,我不是学术工作者,不写Paper。只是咨询公司的报告想做得漂亮一些。

      Cloud2016 啊多谢!我其实一开始尝试了fig.showtext=TRUE。报错是因为我没有install.packages('showtext')

      最后的效果是这样的:


        songxiao 更改标题为「【已解决】R Markdown输出svg格式图片中文不显示问题
        1 个月 后
        2 个月 后

        songxiao 请问,这个fig.showtext=TRUE只能在RMD文件中使用吗?
        如果单纯的想保存一张带有中文的svg图片该怎么做?
        比如

         svg(filename = "Rplot003.svg")
         plot(cars,xlab = "中文测试")
         dev.off()

        这里“中文测试”是显示不出来的。怎么做能显示出来。
        另外,当使用png()分辨率调的很大时,字会非常小,有解决思路吗?
        Cloud2016 songxiao
        @yihui

          zhaowanli007 我经常使用的一个比较偷懒的办法是,按以上的方法在.Rmd文件中编译。然后,从你的.Rmd所在的文件夹中能找到运行出来的svg图片文件。:)

          4 个月 后