R绘图 第八篇:绘制饼图(ggplot2) |
您所在的位置:网站首页 › origin如何绘制饼图 › R绘图 第八篇:绘制饼图(ggplot2) |
geom_bar()函数不仅可以绘制条形图,还能绘制饼图,跟绘制条形图的区别是坐标系不同,绘制饼图使用的坐标系polar,并且设置theta="y": coord_polar(theta = "y", start = 0, direction = 1, clip = "on")条形图的高度通常表示两种情况之一:每组中的数据的个数,或数据框中列的值,高度表示的含义是由geom_bar()函数的参数stat决定的,stat在geom_bar()函数中有两个有效值:count和identity。默认情况下,stat="count",这意味着每个条的高度等于每组中的数据的个数,并且,它与映射到y的图形属性不相容,所以,当设置stat="count"时,不能设置映射函数aes()中的y参数。如果设置stat="identity",这意味着条形的高度表示数据数据的值,而数据的值是由aes()函数的y参数决定的,就是说,把值映射到y,所以,当设置stat="identity"时,必须设置映射函数中的y参数,把它映射到数值变量。 geom_bar()函数的定义是: geom_bar(mapping = NULL, data = NULL, stat = "count",fill=NULL, position="stack")参数注释: stat:设置统计方法,有效值是count(默认值) 和 identity,其中,count表示条形的高度是变量的数量,identity表示条形的高度是变量的值; position:位置调整,有效值是stack、dodge和fill,默认值是stack(堆叠),是指两个条形图堆叠摆放,dodge是指两个条形图并行摆放,fill是指按照比例来堆叠条形图,每个条形图的高度都相等,但是高度表示的数量是不尽相同的。 fill:条形图的填充色关于stat参数,有三个有效值,分别是count、identity和bin: count是对离散的数据进行计数,计数的结果用一个特殊的变量..count.. 来表示, bin是对连续变量进行统计转换,转换的结果使用变量..density..来表示 而identity是直接引用数据集中变量的值position参数也可以由两个函数来控制,参数vjust和widht是相对值: position_stack(vjust = 1, reverse = FALSE) position_dodge(width = NULL) position_fill(vjust = 1, reverse = FALSE)本文使用vcd包中的Arthritis数据集来演示如何创建条形图。 head(Arthritis) ID Treatment Sex Age Improved 1 57 Treated Male 27 Some 2 46 Treated Male 29 None 3 77 Treated Male 30 None 4 17 Treated Male 32 Marked 5 36 Treated Male 46 Marked 6 23 Treated Male 58 Marked其中变量Improved和Sex是因子类型,ID和Age是数值类型。 一,绘制一个条形图绘制一个饼图之前,需要绘制一个条形图,该条形图有多个分组,这就需要设置映射的x参数映射为一个常量因子,fill映射为分类因子: ggplot(data=Arthritis, mapping=aes(x="Improved",fill=Improved))+ geom_bar(stat="count",width=0.5,position='stack')在条形图之后,添加一个图层,把条形图转换为饼图: ggplot(data=Arthritis, mapping=aes(x="Improved",fill=Improved))+ geom_bar(stat="count",width=0.5,position='stack')+ coord_polar("y", start=0)调整饼图的填充色,文本,使饼图看起来更加美观。 1,调整饼图的填充色 使用scale_fill_manual()函数对饼图填充不同的颜色 ggplot(data=Arthritis, mapping=aes(x="Improved",fill=Improved))+ geom_bar(stat="count",width=0.5,position='stack')+ coord_polar("y", start=0)+ scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))2,调整饼图的标度 blank_theme |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |