iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >使用R语言绘制棒棒糖图火柴杆图教程
  • 864
分享到

使用R语言绘制棒棒糖图火柴杆图教程

2024-04-02 19:04:59 864人浏览 泡泡鱼
摘要

目录 使用原生ggplot方法1)生成数据使用ggpubr包中的ggdotchart()参考 使用原生ggplot方法 最容易也是最简单想到的方法是直接使用ggp

 使用原生ggplot方法

最容易也是最简单想到的方法是直接使用ggplot2包进行更新,这里需要使用ggplot本身的特性,通过图层叠加的方式,进行最终棒棒糖图的展现。(宽度极窄的柱状图配合散点图即可呈现)

1)生成数据

下面我们的展示均以此份数据为例:


library(ggplot2)

# Load data
data("mtcars")
dfm <- mtcars
# Convert the cyl variable to a factor
dfm$cyl <- as.factor(dfm$cyl)
# Add the name colums
dfm$name <- rownames(dfm)

# Calculate the z-score of the mpg data
dfm$mpg_z <- (dfm$mpg -mean(dfm$mpg))/sd(dfm$mpg)
dfm$mpg_grp <- factor(ifelse(dfm$mpg_z < 0, "low", "high"), 
                      levels = c("low", "high"))
# Inspect the data
head(dfm[, c("name", "wt", "mpg", "mpg_z", "mpg_grp", "cyl")])

2)绘制棒棒糖图


ggplot(dfm, aes(x = name, y = mpg)) +
  geom_hline(yintercept = 0, color = "grey", size = 1) + # 添加y=0的辅助线
  geom_point(aes(color = cyl), size = 2) +         # 将点的size设置大一些比较好看
  geom_bar(aes(fill = cyl), stat = "identity", width = 0.2) + # 注意将width宽度设小
  theme_bw(base_family = "Times") +
  theme(panel.grid.minor = element_blank(),
        panel.grid.major.x = element_blank(),      # 消除竖条的背景线
        axis.text.x = element_text(angle = 90),
        legend.position = "None",
        panel.border = element_blank(),
        # text = element_text(family = "STHeiti"), # Mac 电脑上绘图展现中文需要此行命令
        plot.title = element_text(hjust = 0.5)) +  # 标题居中,若无标题可不加
  labs(x = "name", y = "mpg",
       colour = "", linetype = "", fill = "")

结果如下:

下面我们介绍一种更简便且高级的棒棒糖图绘制方法:使用ggpubr包中的ggdotchart()函数。

使用ggpubr包中的ggdotchart()

这里我们直接看官方介绍的几个例子,来理解函数的使用方式,首先载入依赖包:


library(ggpubr)

1)


ggdotchart(dfm, x = "name", y = "mpg",
           color = "cyl",                                # Color by groups
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), # Custom color palette
           sorting = "ascending",                        # Sort value in descending order
           add = "segments",                             # Add segments from y = 0 to dots
           ggtheme = theme_pubr()                        # ggplot2 theme
)

2)


ggdotchart(dfm, x = "name", y = "mpg",
           color = "cyl",                                
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), 
           sorting = "asc", sort.by.groups = TRUE,                      
           add = "segments",                            
           add.params = list(color = "lightgray", size = 2), 
           group = "cyl",                                
           dot.size = 4,                                 
           ggtheme = theme_pubclean()
) + font("x.text", size = 8, vjust = 0.5)

3)


ggdotchart(dfm, x = "name", y = "mpg",
           color = "cyl",                                # Color by groups
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), # Custom color palette
           sorting = "descending",                       # Sort value in descending order
           add = "segments",                             # Add segments from y = 0 to dots
           rotate = TRUE,                                # Rotate vertically
           group = "cyl",                                # Order by groups
           dot.size = 6,                                 # Large dot size
           label = round(dfm$mpg),                        # Add mpg values as dot labels
           font.label = list(color = "white", size = 9,
                             vjust = 0.5),               # Adjust label parameters
           ggtheme = theme_pubr()                        # ggplot2 theme
)

4)


ggdotchart(dfm, x = "name", y = "mpg_z",
           color = "cyl",                                # Color by groups
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), # Custom color palette
           sorting = "descending",                       # Sort value in descending order
           add = "segments",                             # Add segments from y = 0 to dots
           add.params = list(color = "lightgray", size = 2), # Change segment color and size
           group = "cyl",                                # Order by groups
           dot.size = 6,                                 # Large dot size
           label = round(dfm$mpg_z,1),                        # Add mpg values as dot labels
           font.label = list(color = "white", size = 9,
                             vjust = 0.5),               # Adjust label parameters
           ggtheme = theme_pubr()                        # ggplot2 theme
) + geom_hline(yintercept = 0, linetype = 2, color = "lightgray")

参考

Articles - ggpubr: Publication Ready Plots

Articles - R Graphics Essentials

ggpubr: ‘ggplot2' Based Publication Ready Plots

以上就是使用R语言绘制棒棒糖图火柴杆图教程的详细内容,更多关于R语言绘制棒棒糖图火柴杆图的资料请关注编程网其它相关文章!

--结束END--

本文标题: 使用R语言绘制棒棒糖图火柴杆图教程

本文链接: https://www.lsjlt.com/news/156539.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用R语言绘制棒棒糖图火柴杆图教程
    目录 使用原生ggplot方法1)生成数据使用ggpubr包中的ggdotchart()参考 使用原生ggplot方法 最容易也是最简单想到的方法是直接使用ggp...
    99+
    2024-04-02
  • R语言数据可视化绘图Lollipop chart棒棒糖图
    目录Step1. 绘图数据的准备Step2. 绘图数据的读取Step3.绘图所需package的调用Step4.因子水平排序Step5.绘图今天给大家分享的是Lollipop cha...
    99+
    2024-04-02
  • 使用Python怎么绘制一个棒棒糖图表
    本篇文章给大家分享的是有关使用Python怎么绘制一个棒棒糖图表,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先读取一下数据。import pandas ...
    99+
    2023-06-15
  • R语言绘图学习教程VennDiagram绘制venn
    目录导读一、模拟输入二、venn基础图三、个性化参数调整四、保存导读 使用VennDiagram函数包中的venn.diagram函数绘制三数据集venn图。 安装依赖包: # ve...
    99+
    2024-04-02
  • 使用R语言绘制散点图结合边际分布图教程
    目录1. 使用ggExtra结合ggplot21)传统散点图2)密度函数3)直方图4)箱线图(宽窄的显示会有些问题)5)小提琴图(会有重叠,不建议使用)6)密度函数与直方图同时展现2...
    99+
    2024-04-02
  • R语言学习之火山图的绘制详解
    目录火山图输入数据格式使用significant列绘制火山图自动计算significant列绘制火山图火山图中标记基因的名字火山图 火山图用于展示基因表达差异的分布,横轴为Log2 ...
    99+
    2024-04-02
  • R语言可视化ggplot2绘制24小时动态血糖图
    目录数据格式创建等距时间序列的方法(分钟)画图代码数据格式 sample=read.csv("sample.csv",header = T,stringsAsFactors = F)...
    99+
    2024-04-02
  • 使用R语言怎么绘制双坐标图直方图
    这期内容当中小编将会给大家带来有关使用R语言怎么绘制双坐标图直方图,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。什么是R语言R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的一个自由、免费、源代...
    99+
    2023-06-14
  • 如何用R语言绘制散点图
    散点图是将所有的数据以点的形式展现在直角坐标系上,以显示变量之间的相互影响程度,点的位置由变量的数值决定,每个点对应一个 X 和 Y 轴点坐标。 散点图可以使用 plot() 函数来...
    99+
    2024-04-02
  • 怎么用R语言绘制散点图
    小编给大家分享一下怎么用R语言绘制散点图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!散点图是将所有的数据以点的形式展现在直角坐标系上,以显示变量之间的相互影响程...
    99+
    2023-06-08
  • 用R语言绘制函数曲线图
    函数曲线图是研究函数的重要工具。 R 中 curve() 函数可以绘制函数的图像,代码格式如下: curve(expr, from = NULL, to = NULL, n = ...
    99+
    2024-04-02
  • Python使用bar绘制堆积/带误差棒柱形图的实现
    本博文源于《python数据可视化》(黑马程序员编著)。先讲解bar参数如何使用,然后分别演示堆积柱形图和带误差柱形图画法。 bar参数 bar(x,height,width=0...
    99+
    2024-04-02
  • 如何用R语言绘制饼图和条形图
    目录饼图绘制条形图绘制beside 参数 R 语言提供来大量的库来实现绘图功能。 饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表,用于描述量、频率或百分比之间的相对关系。 R ...
    99+
    2024-04-02
  • 怎么用R语言绘制饼图和条形图
    这篇文章给大家分享的是有关怎么用R语言绘制饼图和条形图的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。R 语言提供来大量的库来实现绘图功能。饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表,用于描述量、频率或百...
    99+
    2023-06-08
  • 使用R语言怎么绘制一个直方图
    使用R语言怎么绘制一个直方图?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。语法使用R语言创建直方图的基本语法是hist(v,main,xlab,xlim,ylim,brea...
    99+
    2023-06-14
  • 使用R语言怎么绘制一个饼状图
    今天就跟大家聊聊有关使用R语言怎么绘制一个饼状图,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。什么是R语言R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的一个自由、免费、...
    99+
    2023-06-14
  • R语言可视化ggplot2怎么绘制24小时动态血糖图
    这篇文章主要介绍“R语言可视化ggplot2怎么绘制24小时动态血糖图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“R语言可视化ggplot2怎么绘制24小时动态血糖图”文章能帮助大家解决问题。数据...
    99+
    2023-06-30
  • 使用R语言怎么绘制一个折线图
    这篇文章给大家介绍使用R语言怎么绘制一个折线图,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在R中的通过使用plot()函数来创建线形图,语法如下:plot(v,type,col,xlab,ylab)参数描述如下:v ...
    99+
    2023-06-14
  • 使用R语言怎么绘制函数曲线图
    这期内容当中小编将会给大家带来有关使用R语言怎么绘制函数曲线图,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。R 中 curve() 函数可以绘制函数的图像,代码格式如下:curve(expr, ...
    99+
    2023-06-15
  • R语言作图之直方图histogram绘制过程详解
    先给大家介绍下R语言入门:直方图histogram的绘制,具体内容如下所示: 直方图和条形图最大的不同则是直方图可以用于显示出一个数据的频数,具有统计的作用,我们下面来看一一看直方图...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作