iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >R语言绘图-点图dot plot
  • 130
分享到

R语言绘图-点图dot plot

2024-04-02 19:04:59 130人浏览 薄情痞子
摘要

点图简介 点图又叫Cleveland dot plot,克利夫兰点图。可以在水平线上绘制大量的点,更好的表示点之间的关系。强调数据的排序展示以及数据之间的差距。 点图一般是横向展示,

点图简介

点图又叫Cleveland dot plot,克利夫兰点图。可以在水平线上绘制大量的点,更好的表示点之间的关系。强调数据的排序展示以及数据之间的差距。

点图一般是横向展示,所以y轴为类别型变量,x轴为需要展示的数据值。

dotchart函数


dotchart(x, labels = NULL, groups = NULL, gdata = NULL,
         ann = par("ann"), xaxt = par("xaxt"), frame.plot = TRUE, log = "",
         cex = par("cex"), pt.cex = cex,
         pch = 21, gpch = 21, bg = par("bg"),
         color = par("fg"), GColor = par("fg"), lcolor = "gray",
         xlim = range(x[is.finite(x)]),
         main = NULL, xlab = NULL, ylab = NULL, ...)

R语言的base包里面自带的dotchart函数可以绘制点图。

上面简介中的例子copy自dotchart的函数帮助文档。


dotchart(VADeaths, main = "Death Rates in Virginia - 1940")

数据是1940年每1000人的死亡率。数据按照年龄段来区分,并且按照地方,男女性分组。


> VADeaths
      Rural Male Rural Female Urban Male Urban Female
50-54       11.7          8.7       15.4          8.4
55-59       18.1         11.7       24.3         13.6
60-64       26.9         20.3       37.0         19.3
65-69       41.0         30.9       54.6         35.1
70-74       66.0         54.3       71.1         50.0

dot 比较图

我想比较特定地方的男女死亡率的比较。这样的话,数据需要处理。下面的code处理的比较麻烦。但是达到了我要的效果。


ruralDFMale <- data.frame(rownames(VADeaths),VADeaths[,1], c("Male","Male","Male","Male","Male"))
names(ruralDFMale ) <- c("AgeGroup", "DeathRate","Gender" )

ruralDFFeMale <- data.frame(rownames(VADeaths),VADeaths[,2], c("Female","Female","Female","Female","Female"))
names(ruralDFFeMale) <- c("AgeGroup", "DeathRate","Gender" )

ruralDF <- rbind(ruralDFMale, ruralDFFeMale)

colorFun <- function(gender) {
    colorVec <- vector()
    for(g in gender) {
        if(g == "Female") {
            colorVec <- c(colorVec, "Red")
        } else {
           colorVec <- c(colorVec, "Blue")
        }
    }
    colorVec 
}
dotchart(ruralDF$DeathRate, main = "Death Rates in Virginia - 1940", groups=ruralDF$AgeGroup,color=colorFun(ruralDF$Gender))

处理过后的数据


> ruralDF
       AgeGroup DeathRate Gender
50-54     50-54      11.7   Male
55-59     55-59      18.1   Male
60-64     60-64      26.9   Male
65-69     65-69      41.0   Male
70-74     70-74      66.0   Male
50-541    50-54       8.7 Female
55-591    55-59      11.7 Female
60-641    60-64      20.3 Female
65-691    65-69      30.9 Female
70-741    70-74      54.3 Female

图中的红色为女性,蓝色为男性。结果符合一般的常识,女性的寿命高于男性。所以同一年龄段的女性死亡率比男性低。

补充:R语言作图——violin plot(小提琴图)

小仙同学决定学习R语言来提升自己作图的“逼格”的时候,心中还有有些疑虑的(嘿嘿,我这么懒,可不愿意做无用功了?)。仔细想了想,貌似又找到了两个学习R的理由。

一是R可以帮助我们避免重复劳动,实现“一劳永逸”的终极梦想。尽管非常不想承认这一事实,在科研的过程中,小仙同学制造出了大量“无效”的数据(sign…),但也不得不“绞尽脑汁”、“竭尽全力”地进行花式分析,试图找出合理的解释。这时候用excel或者Origin作图的劣势就显现出来了,每换一种分析方法或者是数据,我们都需要经过“插入图表”、“调整颜色”、“调整间距”等等繁杂的工序画出一张可以拿去“面圣”的图。小仙同学一想到这些就感觉“累觉不爱”了。

二是R可以自动生成比较貌美的图。不知道大家有没有这样的感受,自己辛辛苦苦画了半天、调整的半天的图会得到真实却很残忍的评价“很丑”(这是小仙同学心中永远的痛)。即使本小仙自以为眼光独特、品味高雅,费劲尝试“高级”的色系,但搭配出来总是那么不尽人意(实测网红晚晚带火的“莫兰迪色”不适用于科研绘图)。颜色的搭配、饱和度和透明度的调整没有想象中那么容易。折腾了半天,天生就爱不服气的本小仙,最后决定还是把专业的事交给专业的人做啦(偷偷告诉你,据说有科学家专门研究paper插图的配色,所以自己画的图没有那么貌美的时候也不要“妄自菲薄”啦)。

好了,叨叨这么多,终于要开始进入正题啦。一开始用R绘图的时候,小仙同学其实是非常痛苦的,因为没有编程基础,又怼了好几年瓶瓶罐罐,看到一行行代码,脑子里飘过的全是“&%¥#@¥$”。尤其是当你有实验要做、报告要写、作业要交的时候,平心静气地坐下来踏踏实实学习真的太难了(有人说小仙同学那么忙是因为效率低,好像真有些道理,我这真是“唉”,有苦说不出)。

后来本小仙的学习策略就非常简单,用到啥就去搜啥,我对数据结构、语法结构一点都不感兴趣,能让我用最短的时间内画出我想要的图,就是最好的方法。即使这样,小仙同学还是费了一些功夫。因为网上的一些教程,很多都是从别处复制粘贴过来的,本身就不完整。另外一个原因,某些大神觉得自己的教程已经足够通俗易懂了,有些大家都知道的基础知识根本不需要讲(小仙同学不服,有基础的同学不用看教程也可以自己摸索出来,真正需要教程的就是我们这些小白)。

小仙同学愿意尝试一下,把最最全面、稍作修改就能拿去的方法code分享一下,也不枉费花了那么多的时间。

那就先从violin plot开始吧。

(假设你已经安装了R和RStudio)

Step1. 绘图数据的准备

首先要把你想要绘图的数据调整成R语言可以识别的格式。

一般我们的数据都是保存在excel文档里,这里建议大家在excel中保存成csv格式,读写的速度会比xlsx快很多。(小仙同学的亲身经验,我的有些数据有两万行,xlsx在我的耐心范围内读不进去,RStudio崩溃)。

数据的格式如下图:一列表示一种变量,第一行是列名

数据格式

Step2. 绘图数据的读取


data<-read.csv(“your file path”, header = T) #注释:header=T表示数据中

的第一行是列名,如果没有列名就用header=F

Step3.绘图所需package的安装、调用


install.package(“ggplot2”) #注释:ggplot2是目前公认绘图很强的一个安装包
library(ggplot2) #注释:package在使用之前需要调用

Step4.绘图


data$dose <- as.factor(data$dose) #注释:此处dose可用你的变量名称替换,$表示取数据集里的某一个元素


p<-ggplot(data, aes(x = dose, y = len)) #注释:”x=”,”y=”表示x轴和y轴表示的变量数值,p表示图像对象
p+geom_violin() #注释:画出violin plot的函数

Step5.美化


p+geom_violin(aes(fill = dose)) #注释:按组别填充不同的颜色

*如果你想手动改变颜色,可以使用这一句


p+geom_violin(aes(fill = “dose”))+scale_fill_manual(values=c("#56B4E9"))
#注释:”#56B4E9”可以用其他颜色的代码来替换

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

--结束END--

本文标题: R语言绘图-点图dot plot

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

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

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

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

下载Word文档
猜你喜欢
  • R语言绘图-点图dot plot
    点图简介 点图又叫Cleveland dot plot,克利夫兰点图。可以在水平线上绘制大量的点,更好的表示点之间的关系。强调数据的排序展示以及数据之间的差距。 点图一般是横向展示,...
    99+
    2022-11-12
  • R语言怎么绘制Dot plot点图
    这篇文章主要介绍了R语言怎么绘制Dot plot点图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇R语言怎么绘制Dot plot点图文章都会有所收获,下面我们一起来看看吧。点图(Dot pl...
    99+
    2023-06-29
  • R语言绘制line plot线图示例详解
    目录Step1. 绘图数据的准备Step2. 绘图数据的读取Step3. 绘图所需package的安装、调用Step4. 绘图最近小仙同学在Nature Cell Biology上看...
    99+
    2022-11-13
  • 怎么在R语言中使用density plot进行绘图
    这期内容当中小编将会给大家带来有关怎么在R语言中使用density plot进行绘图,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Step1. 绘图数据的准备首先还是要把你想要绘图的数据调整成R语言可以识...
    99+
    2023-06-08
  • R语言绘制数据可视化Dumbbell plot哑铃图
    目录Step1. 绘图数据的准备Step3. 绘图所需package的安装、调用Step4. 绘图改变size的大小调整顺序又是一年春来到,小仙祝大家在新的一年开开心心、顺顺利利!今...
    99+
    2022-11-13
  • R语言怎么绘制散点图
    这篇文章将为大家详细讲解有关R语言怎么绘制散点图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。散点图显示在笛卡尔平面中绘制的许多点。 每个点表示两个变量的值。 在水平轴上选择一个变量,在垂直轴上选择另一个...
    99+
    2023-06-14
  • 如何用R语言绘制散点图
    散点图是将所有的数据以点的形式展现在直角坐标系上,以显示变量之间的相互影响程度,点的位置由变量的数值决定,每个点对应一个 X 和 Y 轴点坐标。 散点图可以使用 plot() 函数来...
    99+
    2022-11-11
  • 怎么用R语言绘制散点图
    小编给大家分享一下怎么用R语言绘制散点图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!散点图是将所有的数据以点的形式展现在直角坐标系上,以显示变量之间的相互影响程...
    99+
    2023-06-08
  • R语言数可视化Split violin plot小提琴图绘制方法
    最近小仙同学在好几篇文献里看到了这种小提琴图,暂时就肤浅地认为这是作者为了更好地比较对照组与实验组的差别,所以将同一个基因的小提琴图各画了一半,放在一起。为了跟上可视化的潮流,小仙也...
    99+
    2022-11-13
  • R语言绘制散点图实例分析
    散点图显示在笛卡尔平面中绘制的许多点。 每个点表示两个变量的值。 在水平轴上选择一个变量,在垂直轴上选择另一个变量。 使用plot()函数创建简单散点图。 语法 在R语言中创建散点图...
    99+
    2022-11-12
  • R语言作图之density plot(密度图)的制作步骤
    上次分享了小提琴曲线(violin plot)的作图方法,今天小仙同学给大家介绍一下如何用R画出漂亮的密度图(density plot)。 Step1. 绘图数据的准备 首先还是要...
    99+
    2022-11-11
  • R语言绘制Radarchart雷达图
    目录更新前原文作图方法:Step1.绘图数据的准备Step2.绘图数据的读取Step3.绘图所需package的安装、调用Step4.绘图数据格式调整Step5.绘图填充透明度调整方...
    99+
    2022-11-13
  • R语言数据可视化绘制Circular bar plot实现环形柱状图
    目录Step1. 绘图数据的准备Step2. 绘图数据的读取Step3.绘图所需package的调用Step4.绘图环形柱状图排好序的环形柱状图调整颜色注意事项不知不觉,距离小仙上次...
    99+
    2022-11-13
  • R语言数据可视化绘图Dotplot点图画法示例
    目录Step1. 绘图数据的准备Step2. 绘图数据的读取Step3.绘图所需package的安装、调用Step4.绘图添加平均值添加误差线今天要给大家介绍的是点图(Dot plo...
    99+
    2022-11-13
  • R语言利用plot()函数画图的基本用法
    plot()函数在R语言画图中位置十分重要,现在就对其具体用法做一个总结。  基本用法: plot(x=x轴数据,y=y轴数据,main="标题",sub="子标题",...
    99+
    2022-11-11
  • R语言绘图学习教程VennDiagram绘制venn
    目录导读一、模拟输入二、venn基础图三、个性化参数调整四、保存导读 使用VennDiagram函数包中的venn.diagram函数绘制三数据集venn图。 安装依赖包: # ve...
    99+
    2022-11-13
  • 如何用R语言绘制饼图和条形图
    目录饼图绘制条形图绘制beside 参数 R 语言提供来大量的库来实现绘图功能。 饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表,用于描述量、频率或百分比之间的相对关系。 R ...
    99+
    2022-11-11
  • R语言绘图数据可视化pie chart饼图
    目录Step 1. 绘图数据的准备Step2. 绘图数据的读取Step3.绘图所需package的调用Step4. 饼图百分比标签准备Step5.绘图今天要给大家介绍的Pie cha...
    99+
    2022-11-13
  • R语言绘图技巧导出高清图方法
    上一次小仙同学分享了 facet violin plot的画法,最后还卖了个关子,给大家留了个悬念。科研文章的插图通常要求比较高,不仅要精准地展示出数据,选对图表类型,还需要简洁优美...
    99+
    2022-11-13
  • 怎么用R语言绘制饼图和条形图
    这篇文章给大家分享的是有关怎么用R语言绘制饼图和条形图的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。R 语言提供来大量的库来实现绘图功能。饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表,用于描述量、频率或百...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作