R统计图表与好玩的字体
本文参考至统计之都的showtext:字体,好玩的字体和好玩的图形以及R能不能绘制这种图形??。当中讨论了在R图表中显示中文以及其他自定义字体的方法。这两篇文章中使用到showtext
这个包,但实际测试发现好像不使用showtext
也能达到同样的效果。下面的R code我是在Mac下的RStudio下实验的,因此如果windows达不到同样的效果,可以参考上面这两篇文章。
正常情况下,R plot不能显示中文,所有中文会变成一个一个方块
|
|
这是因为R无法找到正确的中文字体来显示。简单设置一下字体之后,发现中文标题可以正常显示了。这里”Kai”是系统自带的楷体字。
|
|
不仅仅是标题,我们往plot上增加的text也是可以设置中文字体的。
|
|
那么我们自己下载的字体可不可以呢?答案是可以的。如果不想安装字体,可以按照文章一开始参考的链接,使用showtext
包来载入字体。或者跟我一样先安装字体,这样使用起来就和系统自带的字体一样了。
接下来我们来画一个不同教育程度下性别比例的横向柱状图。首先下载wmpeople1字体。在这种字体下字母”p”将显示为男人,”u”将显示为女人。
下载并解压,会得到一个叫wmpeople1.TTF的字体文件。在Mac下直接双击该字体文件即可安装。
先来看看原始数据:
edu | educode | gender | population |
---|---|---|---|
未上过学 | 1 | m | 17464 |
未上过学 | 1 | f | 41268 |
小 学 | 2 | m | 139378 |
小 学 | 2 | f | 154854 |
初 中 | 3 | m | 236369 |
初 中 | 3 | f | 205537 |
高 中 | 4 | m | 94528 |
高 中 | 4 | f | 70521 |
大专及以上 | 5 | m | 57013 |
大专及以上 | 5 | f | 50334 |
其中人口的单位为(千人),之后会先除以10000转换为(千万人)。
接下来我们将使用ggplot2画图。
|
|
标题,横纵坐标的label,以及内部的text都可以修改字体。那么坐标轴上的文字当然也是可以的。
我们来把教育程度改成暴走字体。和之前一样下载解压,得到一个Memes.ttf的字体文件,安装它。不过注意安装之后该字体的名称并不是叫Memes,如果像之前一样把字体设置为Memes会报错说找不到字体。
安装的时候我们可以看到该字体真实的名字叫做adasdasdsdsd(看名字就够暴走了。。。)
我们这里试着把纵坐标替换为暴走体,因为暴走字体只支持英文大小写以及数字,因此先把这几个教育程度替换为英文字母。
|
|