R绘图 第八篇:绘制饼图(ggplot2)

您所在的位置:网站首页 origin如何绘制饼图 R绘图 第八篇:绘制饼图(ggplot2)

R绘图 第八篇:绘制饼图(ggplot2)

2022-06-11 23:29| 来源: 网络整理| 查看: 265

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