本文主要介绍了R语言绘图-点状图案例,有很好的参考价值,希望对大家有所帮助。来和边肖一起看看吧。
点图简介
该图也被称为克利夫兰点图,克利夫兰点图。可以在横线上画大量的点,更好的表现点与点之间的关系。强调数据的排序显示和数据之间的差距。
图形一般是水平显示的,所以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 .有限(x)]),
main=NULL,xlab=NULL,ylab=NULL,)
R语言的基础包中包含的dotchart函数可以绘制点状图。
上面介绍的例子都是抄袭dotchart的函数帮助文档。
dotchart(VADeaths,main= 1940年弗吉尼亚的死亡率)
数据是1940年每1000人的死亡率。数据按年龄组划分,按地点、性别、性别分组。
VADeaths
农村男性农村女性城市男性城市女性
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 比较图
我想比较一下特定地方的男女死亡率。在这种情况下,需要对数据进行处理。下面的代码处理起来相当麻烦。但是达到了我想要的效果。
rural dfmale-data . frame(row names(va deadlines),va deadlines[,1],c(男性,男性,男性,男性,男性))
姓名(农村)- c(年龄组,死亡率,性别 )
ruralDFFeMale-data . frame(row names(va deaths),VADeaths[,2],c(FeMale , Female , Female , Female , Female , Female ))
姓名(ruralDFFeMale) - c(年龄组,死亡率,性别 )
ruralDF - rbind(ruralDFMale,ruralDFMale)
colorFun -功能(性别){
colorVec向量()
对于(性别为g){
if(g==Female) {
colorVec - c(colorVec,“红色”)
}否则{
colorVec - c(colorVec,“蓝色”)
}
}
colorVec
}
dotchart(ruralDF$DeathRate,main= 1940年弗吉尼亚的死亡率,groups=ruralDF$AgeGroup,color=colorFun(ruralDF$Gender))
处理过的数据
ruralDF
年龄组死亡率性别
50-54岁男性
55-59岁
26.9岁男性
65-69岁男性
70-74岁
8.7名女性
11.7岁女性
20.3岁女性
65-69岁30.9岁女性
54.3名女性
图中红色为雌性,蓝色为雄性。结果符合常识,女性寿命比男性长。所以同年龄段女性死亡率低于男性。
补充:R语言作图——violin plot(小提琴图)
当小贤决定学习R语言来提高自己的画图水平时,他还有些疑惑(嘿嘿,我这么懒,不想做无用功?)。仔细一想,似乎又找到了两个学r的理由。
第一,R可以帮助我们避免重复劳动,实现“一劳永逸”的终极梦想。虽然我真的不愿意承认这个事实,但是在科研过程中,小贤同学产生了很多“无效”的数据(签……),却不得不“绞尽脑汁”“竭尽全力”地花里胡哨地分析,试图找到合理的解释。这时候用Excel或者Origin绘图的弊端就显露出来了。我们每改变一个分析方法或数据,都需要经过“插图”、“调色”、“调间距”等复杂的程序,才能画出一张可作为“圣面”的图。神仙学生一想到这些就觉得“累,不爱”。
第二,R可以自动生成更漂亮的图片。不知道大家有没有这种感觉,辛辛苦苦画了半天调出来的图,会被真实却残酷的评价为“很丑”(这是小贤心中永远的痛)。即使本小仙自以为眼光独到,品味高雅,努力尝试“高级”的配色,但搭配总是不尽如人意(网络名人里实测的“莫兰迪色”晚上带火不适合科研图纸)。配色、饱和度、透明度的调整没有想象中那么容易。折腾了半天,天生不服气的本小仙终于决定把专业的工作留给专业的人去做(偷偷告诉你,据说有的科学家专门研究纸质插图的配色,你自己的图片没那么好看就不要“妄自菲薄”了)。
好了,说了这么多,我终于要进入正题了。当初用R画画的时候,小贤同学其实很痛苦,因为他没有编程基础,在瓶瓶罐罐中度过了几年。当他看到一行行代码时,脑海中浮现的都是“%# @ $”。尤其是当你有实验要做,有报告要写,有作业要交的时候,真的太难心平气和的坐下来,踏踏实实的学习了(有人说小贤同学这么忙是因为效率低,好像是真的。苦的时候说不出来)。
后来,本小仙的学习策略很简单。我用什么搜什么。我对数据结构和语法结构一点也不感兴趣。这是在最短的时间内画出我想要的画的最好方法。即便如此,小仙还是费了一番功夫。因为一些网上的教程,很多都是从其他地方复制粘贴过来的,本身就不完整。还有一个原因就是有些大神觉得自己的教程足够浅显易懂,有些大家都知道的基础知识根本不需要讲(小贤同学不接受,有基础知识的同学不用看教程就可以自己找出来。真正需要教程的是我们这些小白)。
小贤愿意试一试,分享最全面的,稍微修改的方法代码,不浪费那么多时间。
先说小提琴剧情。
(假设你已经安装了R和RStudio)
Step1. 绘图数据的准备
首先把你要画的数据调整成R语言能识别的格式。
一般我们的数据都保存在excel文档里。这里建议你在excel中保存为csv格式,读写速度会比xlsx快很多。(小仙女的亲身经历,我的一些数据有2万行,xlsx在我的忍耐范围内读不出来,RStudio崩溃)。
的数据格式如下:一列代表一个变量,第一行是列名。
Step2. 绘图数据的读取
Data-read.csv("你的文件路径",header=T) #注意:header=T表示在数据中
的第一行是列名。如果没有列名,使用header=f。
Step3.绘图所需package的安装、调用
Install.package ("ggplot2") #注:ggplot2是一个强绘制的安装包。
库(ggplot2) #注意:使用前需要调用包。
Step4.绘图
data $ dose-as . factor(data $ dose)#注意:在这里,dose可以用你的变量名代替,$表示从数据集中取一个元素。
P-GG图(data,AES (x=dose,y=len)) #注:“x=”,“y=”表示x轴和y轴代表的变量值,p表示图像对象。
P geom_violin() #注:画violinlot的函数。
Step5.美化
P geom_violin(aes(fill=dose)) #注:按组填充不同颜色。
*如果要手动改变颜色,可以用这句话。
p geom _ violin(AES(fill=" dose "))scale _ fill _ manual(values=c( # 56b4e 9 ))
#注:“#56B4E9”可以用其他色标代替。
以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。如有错误或不足之处,请不吝赐教。