R语言ggplot2画棒棒糖图展示中国十大姓氏的数量

发现了一个很有意思的R语言包 ChineseNames,对应的github主页是 https://github.com/psychbruce/ChineseNames

image.png

自己的理解是这个 包里统计了12亿汉族人的姓名信息,其中姓是1806个,名字是2614个,今天推文的内容来简单探索一下姓的信息,主要包括

  • 最多的人的姓是啥
  • 最少的姓是啥
  • 复姓都有啥
首先是安装这个包
install.packages("ChineseNames")
通过help函数查阅帮助文档
help(package="ChineseNames")

这个包里有一个数据集是familyname,我们看一下这个数据集的前六行

library(ChineseNames)
data(familyname)
head(familyname)
image.png
  • surname是姓
  • compound 代表是不是复姓,1的话就是复姓
我们先来看下复姓都有啥
library(dplyr)
familyname %>% 
  filter(compound == 1) -> df1
df2<-data.frame(matrix(df1$surname,7))
library(gridExtra)
grid.arrange(tableGrob(df2))
image.png

前面的还比较熟,欧阳,上官之类的,后面的完全没有听过,你有同学是这些复姓的吗,可以在留言区留言呀!

接下来我们画一个棒棒糖图看一下排名前十的姓都有啥
df3<-familyname[1:10,]
df3$x<-1:10
library(ggplot2)
library(Cairo)
p1<-ggplot(df3,aes(x=x,y=n.1930_2008))+
  geom_segment(aes(x=x,xend=x,y=-Inf,yend=n.1930_2008,
                   color=surname),size=2)+
  geom_point(aes(color=surname),size=25,alpha=0.8)+
  geom_text(aes(x=x,y=n.1930_2008,label=surname),size=10)+
  theme_bw()+
  theme(panel.grid = element_blank(),
        axis.title = element_blank(),
        axis.text = element_blank(),
        axis.ticks = element_blank(),
        legend.position = "none")+
  ylim(NA,100000000)

library(extrafont)
fonts()
ggsave(filename = "Rplot01.pdf",
       p1,
       width = 10,
       height = 5,
       device = cairo_pdf,
       family="STKaiti")

image.png

今天的内容就先到这里了,有时间再来探索其他内容

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

你可能感兴趣的:(R语言ggplot2画棒棒糖图展示中国十大姓氏的数量)