专栏首页庄闪闪的R语言手册R可视乎|复合饼图系列

R可视乎|复合饼图系列

散点复合饼图(compound scatter and pie chart)可以展示三个数据变量的信息:(x, y, P),其中x和y决定气泡在直角坐标系中的位置,P表示饼图的数据信息,决定饼图中各个类别的占比情况,如图(a)所示。

气泡复合饼图(compound bubble and pie chart)可以展示四个数据变量的信息:(x, y, z, P),其中x 和y 决定气泡在直角坐标系中的位置,z 决定气泡的大小,P 表示饼图的数据信息,决定饼图中各个类别的占比情况,如图(b)所示。

数据介绍

这是一个和犯罪有关的数据,主要用到里面几列数据,murder、Forcible_rate、Robbery、aggravated_assult、burglary、larceny_theft、motor_vehicle_theft。

library(ggplot2)
library(scatterpie)
library(RColorBrewer)
crime<- read.csv("~/crimeRatesByState2005.tsv",header = TRUE, sep = "\t", stringsAsFactors = F)
radius <- sqrt(crime$population / pi)
Max_radius<-max(radius)
Bubble_Scale<-0.1
crime$radius <- Bubble_Scale * radius/Max_radius
mydata<-crime[,c(2,4,3,5:8)]  #数据集构造
Col_Mean<-apply(mydata,2,mean)
Col_Sort<-sort(Col_Mean,index.return=TRUE,decreasing = TRUE)
mydata<-mydata[,Col_Sort$ix]
x<-(mydata$murder-min(mydata$murder))/(max(mydata$murder)-min(mydata$murder))+0.00001
y<-(mydata$Robbery-min(mydata$Robbery))/(max(mydata$Robbery)-min(mydata$Robbery))+0.00001
xlabel<-seq(0,10,2)
xbreak<-(xlabel-min(mydata$murder))/(max(mydata$murder)-min(mydata$murder))+0.00001
ylabel<-seq(0,260,50)
ybreak<-(ylabel-min(mydata$Robbery))/(max(mydata$Robbery)-min(mydata$Robbery))+0.00001
mydata2<-data.frame(x,y,radius=crime$radius)
mydata2<-cbind(mydata2,mydata)
Legnd_label<-colnames(mydata2)[4:10]
colnames(mydata2)[4:10]<-LETTERS[1:7]

散点复合饼图系列(a)

ggplot() + 
  geom_scatterpie(aes(x=x, y=y,r=0.05), data=mydata2, cols=colnames(mydata2)[4:10],alpha=0.9,size=0.1) +
  scale_fill_manual(values=colorRampPalette(brewer.pal(7, "Set2"))(7),labels=Legnd_label)+
  #geom_scatterpie_legend(mydata2$radius, x=0.1, y=0.95, n=5,labeller=function(x) round((x* Max_radius/ Bubble_Scale)^2*pi))+
  #geom_scatterpie_legend(mydata2$radius, x=0.009758116, y=0.090868067, n=4,labeller=function(x) round((x* Max_radius/ Bubble_Scale)^2*pi))+
  scale_x_continuous(breaks=xbreak, labels=xlabel)+
  scale_y_continuous(breaks=ybreak, labels=ylabel)+
  xlab("murder")+
  ylab("Robbery")+
  coord_fixed()+
  theme(
    axis.title=element_text(size=15,face="plain",color="black"),
    axis.text = element_text(size=13,face="plain",color="black"),
    legend.title=element_text(size=15,face="plain",color="black"),
    legend.text = element_text(size=14,face="plain",color="black")
)

散点复合饼图系列(b)

ggplot() + 
  geom_scatterpie(aes(x=x, y=y,r=radius), data=mydata2, cols=colnames(mydata2)[4:10],alpha=0.9,size=0.25) +
  scale_fill_manual(values=colorRampPalette(brewer.pal(7, "Set2"))(7),labels=Legnd_label)+
  geom_scatterpie_legend(mydata2$radius, x=0.1, y=0.95, n=5,
                         labeller=function(x) round((x* Max_radius/ Bubble_Scale)^2*pi))+
  #geom_scatterpie_legend(mydata2$radius, x=0.009758116, y=0.090868067, n=4,labeller=function(x) round((x* Max_radius/ Bubble_Scale)^2*pi))+
  scale_x_continuous(breaks=xbreak, labels=xlabel)+
  scale_y_continuous(breaks=ybreak, labels=ylabel)+
  xlab("murder")+
  ylab("Robbery")+
  coord_fixed()+
  theme(
    axis.title=element_text(size=15,face="plain",color="black"),
    axis.text = element_text(size=13,face="plain",color="black"),
    legend.title=element_text(size=15,face="plain",color="black"),
    legend.text = element_text(size=14,face="plain",color="black")
  )

参考资料

《R语言数据可视化之美》——张杰

这是今天R可视化的学习笔记,我们下次再见。

本文分享自微信公众号 - 庄闪闪的R语言手册(Zss_R4ds),作者:庄闪闪

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R可视乎|饼图

    饼图(pie chart)被广泛地应用于各个领域,用于表示不同分类的占比情况,通过弧度大小来对比各种分类。饼图通过将一个圆饼按照分类的占比划分成多个切片,整个圆...

    庄闪闪
  • R可视乎 | 散点图系列(1)

    散点图(scatter graph、point graph、X-Y plot、scatter chart )是科研绘图中最常见的图表类型之一,通常用于显示和比较...

    庄闪闪
  • R可视乎 | 散点图系列(2)

    散点图(scatter graph、point graph、X-Y plot、scatter chart )是科研绘图中最常见的图表类型之一,通常用于显示和比较...

    庄闪闪
  • R可视乎|克利夫兰点图系列

    在可靠性实验中,不同产品的测试失效时间可以通过克利夫兰点图进行可视化,今天就对该系列的图进行系统的介绍。主要参考张杰博士的《R语言数据可视化之美》[1],并结合...

    庄闪闪
  • 复合饼图绘制(Excel绘制图表系列课程)

    分享Excel的图表已经第三周了,曾经说给我好处的人,到现在还没有兑现。 嗯,我怎么会是这么庸俗的人,嗯嗯!!! 今天和大家分享一个相对于前两期都比较容易绘...

    用户1332619
  • 如何成为数据分析师系列(一):可视化图表初阶

    数据可视化-通过图表形式展现数据,帮助用户快速、准确理解信息。准确、快速是可视化的关键,好的可视化会“讲故事”,能向我们揭示数据背后的规律。对于可视化,有一个常...

    数据森麟
  • 【直播回顾】轻松入门数据可视化

    https://appqtulvsie4217.pc.xiaoe-tech.com/detail/l_5e5dd4cfd2ef3_4Ramdutd/4?from...

    数据小磨坊
  • 模型正则化

    模型正则化欠拟合与过拟合线性回归模型2次多项式回归4次多项式回归评估3种回归模型在测试数据集上的性能表现L1范数正则化Lasso模型在4次多项式特征上的拟合表现...

    用户3577892
  • Matplotlib可视化没那么难:7种常用图表最全绘制攻略来了!

    导读:绘图是数据分析工作中的重要一环,是探索过程的一部分。Matplotlib是当前用于数据可视化的最流行的Python包之一,本文主要介绍数据可视化分析工具:...

    华章科技
  • Python实战 | 送亲戚,送长辈,月饼可视化大屏来帮忙!

    中秋节,又称祭月节、月光诞、月夕、秋节、仲秋节、拜月节、月娘节、月亮节、团圆节等,是中国民间的传统节日。

    AI科技大本营
  • Matplotlib入门

    标题中的英文首字母大写比较规范,但在python实际使用中均为小写。 2018年7月30日笔记 作者的集成开发环境是jupyter,Python版本为3.6...

    潇洒坤
  • 【科研猫·绘图】三维饼图-增加厚度才能提升高度

    饼图前面我们刚刚讲过,不少同学拿到代码以后跃跃欲试,都能顺利绘制出来。不过,有些爱动脑的同学会问,饼图二维的我能够做出来,那三维的该怎么画? 经常在一些高级图形...

    用户6317549
  • R语言什么鬼??你知道吗?

    R语言什么鬼?可以用来做什么?和大数据又有什么关系?有没有好的课程推荐啊?学大数据一定要懂R语言么?…… 网络上太多类似的问题,如果恰好你也有类似的疑惑,那么...

    小莹莹
  • 绘图技巧 | 绘制带饼图的地图可视化技巧分享

    这一期呢,小编回应读者的需求,绘制在地图上添加饼图的可视化作品,这类图表在GIS或生态方面涉及的比较多哈。本期内容主要如下:

    DataCharm
  • R可视乎|圆环图

    对于饼图,上一次学习《R语言数据可视化之美》的时候主要利用graphics包和ggplot包(可见R可视乎|饼图)。这几天的学习中发现还有一个更加简便的方法——...

    庄闪闪
  • 为何大多数人做出来的图表只是一坨屎?

    大数据文摘
  • 数据挖掘知识脉络与资源整理(七)–饼图

    ? ? 简介 饼图英文学名为Sector Graph, 有名Pie Graph。常用于统计学模块。2D饼图为圆形,手画时,常用圆规作图。 仅排列在工作表的一...

    小莹莹
  • R如何与Tableau集成分步指南

    Tableau是当今数据科学和商业智能专业人员使用的最流行的数据可视化工具之一。它使您能够以交互式和多彩的方式创建具有洞察力和影响力的可视化效果。

    拓端
  • 可能会用到的30个R语言包~第四期

    用户7010445

扫码关注云+社区

领取腾讯云代金券