R ggplot2条形图
来源:互联网 发布:淘宝禁止购买下架 编辑:程序博客网 时间:2024/05/28 17:08
常见问题
1、数据的分组
可以用 堆叠式 或 分离式 实现
堆叠式:position=”stack” 或 position=position_stack()
分离式:position=”dodge” 或 position=position_dodge()
2、条形的宽度,分组之间的举例
举例一:(简单的数据分组应用)
dat1 <- data.frame( sex = factor(c("Female","Female","Male","Male")), time = factor(c("Lunch","Dinner","Lunch","Dinner"), levels=c("Lunch","Dinner")), total_bill = c(13.53, 16.81, 16.24, 17.42) )#分离式p <- ggplot(data=dat1, aes(x=time, y=total_bill, fill=sex)) + geom_bar(stat="identity", position=position_dodge())p
#如果改成堆叠式p <- ggplot(data=dat1, aes(x=time, y=total_bill, fill=sex)) + geom_bar(stat="identity", position=position_stack())p
举例二:(稍复杂的分组)
a<-data.frame(x=c("total","a","male","female","b","low education", "mid education","high education","c","working","not working"), y=c(80,0,30,50,0,20,40,20,0,65,35))#现在的需求是#group1:male+female group2:low education+mid education+ high education #group3:working+not working group4:totala$rel = c("a", "a", "a", "b", "b", "b", "c", "c") # 处理,即设置分组#涉及的参数后面会提到ggplot(a, aes(rel, y, fill = factor(x))) + geom_bar(stat = "identity", width = 0.5, position = position_dodge(0.7))
举例三:(间隔、宽度设置)
width即为单个条形的宽度,默认为1, dodge控制他们之间的间隔
此图:width=0.5 position_dodge(0.5)
此图:width=0.5 position_dodge(0.7)
此图:width=0.5 position_dodge(1)
完整举例:
#下载readxl包:此包作用:能从excel中读取数据install.packages(“readxl”)#使用这个包library(readxl)#从excel中读取数据dataset<-read_excel(path=”文件路径/文件名”,range=”选取数据的矩形区域”)#解析#在读取excel原数据之前,对原数据做了点修改,将第一列命名为了Type#path参数表示文件的相对或绝对路径#相对路径可通过调用getwd()看到当前的工作目录#range参数可以选择需要的矩形区域,例如,这儿是”A3:L16”#查看读取到的数据的基本信息str(dataset)#解析#通过此函数可以看到各个列的数据类型是否如预期#如果数据类型非预期的话则手动调整 例如调用as.xx()函数#改变dataset的结构#解析dataset的原始数据格式类似这样:Type Fe Cu Ala 28 5 (无数据的意思)b 20 0 6但若想做出叠加图的那种效果,需要使现在的多维变量降维!只有降低维度,才能达到x-y的对应效果,这样才能让计算机作图需要达到的数据格式如下:Type variable valuea Fe 28 a Cu 5 a Al b Fe 20 b Cu 0b Al 6#首先下载相关可以给“数据整形”的包:reshape2install.packages(“reshape2”)#使用这个包library(“reshape2”)#使用这个包里的“整形”函数dat.m<-melt(dataset,id.vars=”Type”)#解析#第一个参数的意思是源数据集,此处即我们从excel中读取的数据#id.vars参数的意思是,我们标志变量的名字是哪一个,因为只有给定了标志变量,#才能以该变量为基准进行变形#查看整形后的数据head(dat.m)#解析head()函数表示显示数据集里的前6条数据#查看整形后的数据结构str(dat.m)#注意,发现结构不对后应进行调整#调整结构,将dat.m中的value列变为数字类型dat.m$value<-as.numeric(dat.m$value)#解析#因为从str(dat.m)我们可以看到,value列变成了ch即字符串类型,显然是不对的#注意#还可以显示的将数据为空的行去掉bar.m<-na.omit(bar.m)#开始做图形对象p<-ggplot(data=dat.m,aes(x=Type,y=value,fill=variable))#解析#fill参数表明用的填充是什么#这个例子中是Fe,Cu,Al...等,相当于一共有这些分类,因此填充的颜色数目就是这些分类#数目#在之前的图形对象上加上图层bar<-p+geom_bar(stat=”identity”)#解析#stat参数表明用的统计类型是什么#默认的统计雷星是count,即自动的根据图形对象中的x参数将数据分类,每个分类下的数量#作为纵坐标(也就是条形图的高度)#这儿使用identity参数表明根据变量自身的“值”来确定y坐标#查看现在图形的样子bar#可以发现,x坐标的label相隔太近了,因此需要做调整,变为垂直bar<-bar+theme(axis.text.x=element_text(angle=90,hjust=1))#解析#axis.text.x=element_text()是固定的参数调用形式#在里面写上需要的参数#angle表示旋转90度,hjust表明对齐方式,0:左对齐,0.5居中对齐,1:右对齐#查看现在图形bar#改变图例的标题bar<-bar+scale_fill_discrete(name=”element”)#查看现在图形bar#使图形水平放置bar<-bar+coord_flip()#查看现在图形bar
阅读全文
0 0
- R ggplot2条形图
- R语言ggplot2条形图详解
- ggplot2绘制条形图
- ggplot2中的条形图 geom_bar()
- ggplot2-条形图和折线图
- R ggplot2 做图
- R -ggplot2 气泡图
- R ggplot2线性图
- R之条形图
- R ggplot2画饼状图
- R ggplot2画线形图
- ggplot2-为折线图和条形图添加误差线
- ggplot2-条形图和折线图(转载)
- 关于ggplot2画散点图、条形图的一些细节认识
- R ggplot2
- R语言-ggplot2柱状堆叠图
- 使用R,ggplot2绘制NMDS图
- 使用R语言画圆弧条形图
- RRI技术心得
- (6)练习:动态改变新闻字体的颜色:初级和高级
- 最全面的Java多线程用法解析
- Meta http-equiv属性详解
- 动态规划——POJ 1159-Palindrome
- R ggplot2条形图
- HDU 6049 Sdjpx Is Happy(dp)
- 欢迎使用CSDN-markdown编辑器
- ==和equals的区别
- 从键盘连续输入5个整数,判断正数、负数、0分别有多少个
- Atitit.人力资源管理原理与概论
- Ros安装须知
- 小白学习日记2:如何解决安装oracle后系统变慢问题
- HDU 1075 What Are You Talking About 经典字典树