这总商务会议图怎么绘制?一行代码搞定...

今天这篇推文小编给大家介绍一个一直想绘制的图表-议会图(parliament diagrams),当然这也是柱形图系列变形的一种。绘制这种图表也是超级简单的,只需使用R-ggpol包进行绘制即可,当然,改包还提供其他优秀的绘图函数,下面就一起来看下吧。

  • R-ggpol包简介

  • R-ggpol包实例介绍(议会图为主)

  • 更多详细的数据可视化教程,可订阅我们的店铺课程:

R-ggpol包简介

  1. 官网:

https://github.com/erocoar/ggpol

  1. 绘图函数

作为ggplot2绘图系统中的一员,其安装方便(RStudio直接搜索安装即可)而且还可以通过ggplot2强大的绘图函数设计出自己的可视化作品。其提供的主要绘图函数如下:

  • geom_arcbar(): 绘制跨越180度的弧形条形图。

  • geom_parliament(): 绘制议会图(parliament diagrams),即圆弧上的圆圈,其中每个圆圈代表一个议会议员。指定了fill或color即可进行填充和颜色的映射。

  • geom_circle(): 绘制具有指定半径的圆多边形,注意和ggplot2的geom_point()区分开。

  • geom_tshighlight(): 可对绘制时间序列的图表进行突出作用,也是比较常用的绘图技巧。

  • geom_boxjitter(): 绘制了一个混合箱形图-半箱形图且带有误差线的图。

R-ggpol包实例介绍

「geom_boxjitter」:

(绘制了一个混合箱形图-半箱形图且带有误差线的图)

library(ggpol)
library(tidyverse)
library(ggtext)
library(hrbrthemes)
library(LaCroixColoR)library(ggsci) # 使用科学系配色
df <- data.frame(score = rgamma(150, 4, 1), gender = sample(c("M", "F"), 150, replace = TRUE), genotype = factor(sample(1:3, 150, replace = TRUE)))boxjitter <- ggplot(df) + geom_boxjitter(aes(x = genotype, y = score, fill = gender),jitter.shape = 21, jitter.color = NA, jitter.height = 0, jitter.width = 0.04,outlier.color = NA, errorbar.draw = TRUE) +ggsci::scale_fill_jco() +labs(title = "Example of <span style='color:#D20F26'>ggpol::geom_boxjitter function</span>",subtitle = "processed charts with <span style='color:#1A73E8'>geom_boxjitter()</span>",caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +hrbrthemes::theme_ipsum(base_family = "Roboto Condensed")  +theme(plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",size = 20, margin = margin(t = 1, b = 12)),plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),plot.caption = element_markdown(face = 'bold',size = 12))

geom_boxjitter example

geom_boxjitter example

顺便提一下,很喜欢sci包的这个配色,特适合绘制科研图表哦~~

「geom_tshighlight」

可对绘制时间序列的图表进行突出作用,也是比较常用的绘图技巧。

time_hlight <- ggplot(economics, aes(x = date, y = unemploy)) +geom_line() +geom_tshighlight(aes(xmin = as.Date("01/01/1990", format = "%d/%m/%Y"), xmax = as.Date("01/01/2000", format = "%d/%m/%Y")),alpha = 0.01) +labs(title = "Example of <span style='color:#D20F26'>ggpol::geom_tshighlight function</span>",subtitle = "processed charts with <span style='color:#1A73E8'>geom_tshighlight()</span>",caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +hrbrthemes::theme_ft_rc(base_family = "Roboto Condensed")  +theme(plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",size = 20, margin = margin(t = 1, b = 12)),plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),plot.caption = element_markdown(face = 'bold',size = 12))

geom_tshighlight example

geom_tshighlight example

这里使用了hrbrthemes::theme_ft_rc()主题风格(暗黑系列),也是小编较常用的主题哦~~

「geom_arcbar」

绘制跨越180度的弧形条形图。

#构建数据
test_data_bt <- data.frame(parties = factor(c("CDU", "CSU", "AfD", "FDP", "SPD","Linke", "Gruene", "Fraktionslos"),levels = c("CDU", "CSU", "AfD", "FDP", "SPD","Linke", "Gruene", "Fraktionslos")),seats   = c(200, 46, 92, 80, 153, 69, 67, 2),# colors  = c("black", "blue", "lightblue", "yellow", "red",#             "purple", "green", "grey"),stringsAsFactors = FALSE)arcbar <- ggplot(test_data_bt) + geom_arcbar(aes(shares = seats, r0 = 5, r1 = 10, fill = parties),color="gray50" ,sep = 0.1) + #scale_fill_manual(values = bt$colors) +scale_fill_manual(values = lacroix_palette(type = "paired"))+coord_fixed() +# 修改图例guides(fill=guide_legend(nrow=2,byrow=TRUE,reverse = TRUE,title=NULL))+# theme_void(base_family = "Roboto Condensed") +labs(title = "Example of <span style='color:#D20F26'>ggpol::geom_arcbar function</span>",subtitle = "processed charts with <span style='color:#1A73E8'>geom_arcbar()</span>",caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +hrbrthemes::theme_ipsum(base_family = "Roboto Condensed")  +theme(plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",size = 20, margin = margin(t = 1, b = 12)),plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),plot.caption = element_markdown(face = 'bold',size = 12),# 去除刻度线和网格线axis.text.x = element_blank(),axis.text.y = element_blank(),panel.grid.major = element_blank(),panel.grid.minor = element_blank(),panel.background = element_rect(fill="#FEFBCD"),panel.border = element_rect(fill = NA,colour = "#FEFBCD"),plot.background = element_rect(fill="#FEFBCD",colour = "#FEFBCD"),# 修改图例参数legend.position = 'bottom',legend.direction = "horizontal",legend.spacing.y = unit(0.1,"cm"),legend.spacing.x = unit(0.1,"cm"),legend.key.size = unit(0.8, 'lines'),legend.text = element_text(margin = margin(r = .5, unit = 'cm')))

geom_arcbar example

geom_arcbar example

这里我们在hrbrthemes::theme_ipsum() 主题基础上进行了一些修改,具体代码中均有解释。

「geom_parliament」

议会(项目)图(parliament diagrams)

library(readxl)df<-read_excel("G:\\DataCharm\\可视化包介绍(绘制)\\ggpol\\parliament.xlsx")
#head(df)
df1<-df%>%group_by(Party)%>%summarise(Seats=sum(Seats))%>%arrange(Seats) # 简单的数据处理
df1$legend <- paste0(df1$Party," (", df1$Seats,")") # 拼接字符串parliament <- ggplot(data = df1) +geom_parliament(aes(seats = Seats,fill =  Party),color="black") +scale_fill_manual(values = lacroix_palette(type = "paired"),labels=df1$legend) +# 修改图例guides(fill=guide_legend(nrow=3,byrow=TRUE,reverse = TRUE,title=NULL))+# 添加描述性文字annotate("text", x = 0, y = 0.4, label = "Seats in the Parliament :\n 423 occupied \n 27 vacant",colour = "gray20",size=5) +labs(title = "Example of <span style='color:#D20F26'>ggpol::geom_parliament function</span>",subtitle = "processed charts with <span style='color:#1A73E8'>geom_parliament()</span>",caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") +hrbrthemes::theme_ipsum(base_family = "Roboto Condensed")  +# 定制化主题theme(plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",size = 20, margin = margin(t = 1, b = 12)),plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),plot.caption = element_markdown(face = 'bold',size = 12),# 去除刻度线和网格线axis.text.x = element_blank(),axis.text.y = element_blank(),panel.grid.major = element_blank(),panel.grid.minor = element_blank(),panel.background = element_rect(fill="#FEFBCD"),panel.border = element_rect(fill = NA,colour = "#FEFBCD"),plot.background = element_rect(fill="#FEFBCD",colour = "#FEFBCD"),# 修改图例参数legend.position = 'bottom',legend.direction = "horizontal",legend.spacing.y = unit(0.1,"cm"),legend.spacing.x = unit(0.1,"cm"),legend.key.size = unit(0.8, 'lines'),legend.text = element_text(margin = margin(r = .5, unit = 'cm')))

geom_parliament example

geom_parliament example

到这里呢,议会(项目)图(parliament diagrams)也就绘制完成了,虽然一些交互式工具(如Highcharts)也可快速绘制,打我们的目的还是进行细节、配色的练习哦~~

总结

本期推文终于介绍了小编一直心心念念的可视化图了,同时,小伙伴们也应知道的是,善用一些优秀的主题包和颜色包,可以使你的可视化作品颜值提升的不止一个档次哦~,好了,感兴趣的小伙伴赶快去练习下吧~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/851878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么牌子充电宝质量好耐用呢?认准这几个充电宝,凭实力出圈

在快节奏的现代生活中&#xff0c;科技的不断进步使得各类移动设备如手机、平板和笔记本电脑成为人们生活中不可或缺的部分。为了应对这些设备不断增长的能源需求&#xff0c;充电宝市场的崛起迅猛并呈现出持续增长的态势。 在选购移动电源时&#xff0c;如何识别性能出众、质量…

qmt量化交易策略小白学习笔记第29期【qmt编程之获取行业概念数据--如何下载板块分类信息及历史板块分类信息】

qmt编程之获取行业概念数据 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 感谢关注&#xff0c;咨询免费开通量化回测与获取实盘权限&#xff0c;欢迎和博主联系&#xff01; 获取行业概念数…

Android studio 取消默认的标题栏

一、新建APP&#xff0c;默认是带标题栏的&#xff0c;如下图所示&#xff1a; 二、取消默认标题栏&#xff1a; 1&#xff09;、打开AndroidManifest.xml 2&#xff09;、找到android:theme"style/Theme.025NoActionApp" 3&#xff09;、更改为android:theme"…

k8s之kubelet证书时间过期升级

1.查看当前证书时间 # kubeadm alpha certs renew kubelet Kubeadm experimental sub-commands kubeadm是一个用于引导Kubernetes集群的工具&#xff0c;它提供了许多命令和子命令来管理集群的一生周期。过去&#xff0c;某些功能被标记为实验性的&#xff0c;并通过kubeadm a…

第一个Vue3.0应用程序

Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xff0c;Vue 都可以胜任。 1、准备工作 工欲善其事&#…

如何安装和配置JDK?(详细步骤分享)

1、下载JDK 访问Oracle官方网站&#xff08;Oracle | Cloud Applications and Cloud Platform&#xff09;&#xff0c;选择适合您操作系统的JDK版本进行下载。建议下载最新的稳定版本。 打开Java&#xff0c;往下拉&#xff0c;找到Oracle JDK 打开后&#xff0c;选择右边的J…

Linux服务器快速下载GoogleDriver小技巧——利用gdown工具

Linux服务器快速下载GoogleDriver小技巧——利用gdown工具 1. 安装gdown pip install gdown安装好后如果在终端输入gdown显示如下错误&#xff1a;gdown: command not found&#xff0c;则说明gdown默认安装的位置需要软链接一下&#xff0c;执行以下命令&#xff1a; sudo …

开源超闭源?ChatGPT危!

在全球AI开源大模型的竞争格局中&#xff0c;一场引人注目的变革刚刚上演。阿里巴巴旗下的最新力作——通义千问Qwen2&#xff0c;一跃成为开源界的新宠&#xff0c;以其惊人的性能全面超越了此前的开源标杆Llama 3。不到发布两小时&#xff0c;Qwen2就直接冲上了Hugging Face开…

大数据可视化电子沙盘:前端技术的全新演绎

随着大数据时代的到来&#xff0c;数据可视化成为了一个重要的技术趋势。数据可视化不仅可以让复杂的数据变得更加直观易懂&#xff0c;还能帮助我们更好地分析和理解数据。在本文中&#xff0c;我们将深入探讨一种基于HTML/CSS/Echarts等技术的大数据可视化电子沙盘&#xff0…

超越 Transformer开启高效开放语言模型的新篇章

在人工智能快速发展的今天&#xff0c;对于高效且性能卓越的语言模型的追求&#xff0c;促使谷歌DeepMind团队开发出了RecurrentGemma这一突破性模型。这款新型模型在论文《RecurrentGemma&#xff1a;超越Transformers的高效开放语言模型》中得到了详细介绍&#xff0c;它通过…

工控PLC通信协议规约采集测试软件工具网关监测系统

系统概述 功能概述 DAQ for IIOT通用工业数据采集系统是一套运行在边缘计算机上的设备数据采集与管理软件&#xff0c;主要用于对各种仪器设备&#xff08;PLC、注塑机、数控机床、电表、流量计等&#xff09;数据的采集、控制、存储、查询、展示以及上传。 系统主体功能包括…

闪烁与常亮的符号状态判断机制(状态机算法)

背景说明 在视觉项目中&#xff0c;经常要判断目标的状态&#xff0c;例如&#xff1a;符号的不同频率闪烁、常亮等。然而常规的视觉算法例如YOLO&#xff0c;仅仅只能获取当前帧是否存在该符号&#xff0c;而无法对于符号状态进行判断&#xff0c;然而重新写一个基于时序的卷积…

DDD领域应用理论实践分析回顾

目录 一、DDD的重要性 &#xff08;一&#xff09;拥抱互联网黑话&#xff08;抓痛点、谈愿景、搞方法论&#xff09; &#xff08;二&#xff09;DDD真的重要吗&#xff1f; 二、领域驱动设计DDD在B端营销系统的实践 &#xff08;一&#xff09;设计落地步骤 &#xff0…

Ansys Mechanical|使用Trace Mapping建立PCB板的有限元模型

Trace Mapping需要使用ECAD的方法 传统方法 vs ECAD方法 传统方法既繁琐又费时。以下是一些数据&#xff1a; 导出电路板布局的step文件大约需要30分钟。 导入Ansys SpaceClaim中大约需要10分钟。 进行布尔运算和共享拓扑操作大约需要24小时甚至更久。 而ECAD方法更加快速且…

剧本新纪元:探索短剧系统的魔力

在现代社会&#xff0c;随着科技的迅猛进步和生活节奏的不断加快&#xff0c;传统的长篇电视剧和电影已不能完全满足所有人的需求。短剧&#xff0c;由于其简短、快速、直接的特性&#xff0c;正在逐步成为一种文化新趋势。短剧系统正是这一趋势的典型代表&#xff0c;它以独特…

自己用pip下载好模块啦,但是在pycharm里面不显示?

问题&#xff1a; 今天在cmd里面用pip命令安装第三方模块&#xff0c;最后用pip list 命令发现已经成功安装&#xff0c;但是在pycharm里面用该模块的时候&#xff0c;还是爆红&#xff0c;显示没有该库 。 解决方法&#xff1a; 第一种&#xff08;项目刚创建&#xff09;&am…

如何学习软件测试,并成功找到工作

在IT行业日益繁荣的今天&#xff0c;软件测试作为确保软件质量的关键环节&#xff0c;越来越受到企业的重视。对于初入职场的小白来说&#xff0c;掌握软件测试技能不仅能够帮助他们快速适应工作&#xff0c;还能为未来的职业发展奠定坚实的基础。本文将为职场小白推荐学习软件…

NVIDIA DeepStream SDK 说明及链接

NVIDIA DeepStream SDK DeepStream 的多平台支持为您提供了一种更快、更简单的方式来开发视觉AI应用程序和服务。您甚至可以在本地、边缘和云中部署它们&#xff0c;只需单击一个按钮。 开始 在Launchpad上试用 什么是 NVIDIA DeepStream&#xff1f; NVIDIA 的 DeepStream …

公交车载视频监控系统解决方案

公交车载视频监控系统基于iVMS-7200移动视频监控管理平台&#xff0c;通过3G/4G网络接入车载前端&#xff0c;实现实时监控、录像回放、GIS地图定位、轨迹回放、设备状态查询、紧急报警等功能。 车载前端包含车载硬盘录像机(简称车载DVR或MDVR)、车载专用摄像机、车载LCD显示屏…

50.Python-web框架-Django中引入静态的bootstrap样式

目录 Bootstrap 官网 特性 下载 在线样例 Bootstrap 入门 Bootstrap v5 中文文档 v5.3 | Bootstrap 中文网 在django中使用bootstrap 新建static\bootstrap5目录&#xff0c;解压后的Bootstrap文件&#xff0c;拷贝项目里就好。 在template文件里引用css文…