R语言ggplot2包绘制哑铃图

数据和代码获取:请查看主页个人信息!!!

载入R包

复制代码
rm(list=ls())
library(tidyverse)
library(ggalt) # devtools::install_github("hrbrmstr/ggalt")
library(scales)

数据载入

复制代码
health <- read.csv("health.csv")
areas <- read.csv("areas.csv")

数据整理

复制代码
health <-
 health %>%
 mutate(area_id=trunc(area_id)) %>%
 arrange(area_id, pct) %>%
 mutate(year=rep(c("2014", "2013"), 26),
        pct=pct/100) %>%
 left_join(areas, "area_id") %>%
 mutate(area_name=factor(area_name, levels=unique(area_name)))
​
health <- setNames(bind_cols(filter(health, year==2014), filter(health, year==2013))[,c(4,1,5)],
        c("area_name", "pct_2014", "pct_2013"))
  • health 数据集中的 area_id 列四舍五入为整数。

  • 根据 area_idpct 列对数据集进行排序。

  • 在数据集中添加一个 year 列,其值分别为 "2014" 和 "2013",并将 pct 列的值除以 100。

  • areas 数据集与 health 数据集进行左连接,连接键为 area_id 列。

  • area_name 列转换为因子,并按唯一值的顺序设置其水平。

  • health 数据集中的 year 为 2014 和 2013 的数据分别筛选出来,并将它们合并成新的数据集。最后,将列重命名为 "area_name"、"pct_2014" 和 "pct_2013"。

可视化

复制代码
txt_col <- "black"
gg <- ggplot(health, aes(x=pct_2014, xend=pct_2013, y=area_name, group=area_name)) +
 geom_dumbbell(colour="#a3c4dc", size=1.5, colour_xend="#0e668b",
                        dot_guide=TRUE, dot_guide_size=0.15) +
 scale_x_continuous(label=percent) +
 labs(x=NULL, y=NULL) +
 theme_bw() +
 theme(plot.background=element_rect(fill="#f7f7f7"),
       panel.background=element_rect(fill="#f7f7f7"),
       panel.grid.minor=element_blank(),
       panel.grid.major.y=element_blank(),
       panel.grid.major.x=element_line(),
       axis.ticks=element_blank(),
       legend.position="top",
       panel.border=element_blank())
gg
​
ggsave('pic.png', width = 5, height = 5)
  • ggplot() 函数指定了基本图形,并设置了 xxendygroup 的美学映射。

  • geom_dumbbell() 函数创建了 dumbbell 图,用于表示两个时间点之间的变化。参数设置了线的颜色、粗细、点的颜色和指导线的长度。

  • scale_x_continuous() 函数将 x 轴标签格式化为百分比。

  • labs() 函数设置了 x 和 y 轴的标签为 NULL。

  • theme_bw() 函数设置了基本的黑白主题,并通过 theme() 函数进一步调整了图的样式,包括背景颜色、网格线、轴标记和图例位置。

  • ggsave() 函数保存了绘制的图形到名为 "pic.png" 的文件中,指定了图形的宽度和高度。

相关推荐
zhangfeng113314 小时前
R语言 读取tsv的三种方法 ,带有注释的tsv文件
开发语言·r语言·生物信息
Tiger Z15 小时前
《R for Data Science (2e)》免费中文翻译 (第9章) --- Layers(2)
r语言·数据科学·中文翻译
海大哥1 天前
深入解析Java中HashMap的工作原理与性能优化策略
r语言
万粉变现经纪人2 天前
如何解决 pip install -r requirements.txt 约束文件 constraints.txt 仅允许固定版本(未锁定报错)问题
开发语言·python·r语言·django·beautifulsoup·pandas·pip
万粉变现经纪人2 天前
如何解决 pip install -r requirements.txt 无效可编辑项 ‘e .‘(-e 拼写错误)问题
开发语言·python·r语言·beautifulsoup·pandas·pip·scipy
zhangfeng11333 天前
亲测可用,R语言 ggplot2 箱线图线条控制参数详解,箱线图离散数值控制
开发语言·python·r语言·生物信息
zhangfeng11333 天前
R 导出 PDF 时中文不显示 不依赖 showtext** 的最简方案(用 extrafont 把系统 TTF 真正灌进 PDF 内核)
开发语言·r语言·pdf·生物信息
生物小卡拉3 天前
R脚本--PCA分析系列1_v1.0
开发语言·r语言
生物小卡拉3 天前
R脚本——LefSE分析与可视化-v1
开发语言·r语言
猫头虎4 天前
如何解决 pip install -r requirements.txt 本地轮子路径 ‘./packages/xxx.whl’ 不存在 问题
开发语言·网络·python·r语言·pip·gpu算力·国产