饼图英文学名为Sector Graph, 又名Pie Graph。常用于统计学模块。饼图显示一个数据系列中各项的大小与各项总和的比例。也就是说我们想直观的看某一样本值在所有样本总值中所占的比例时,可以使用饼图来表示。
在R语言中绘制饼图的函数为pie,其使用格式如下:
pie(x, labels = names(x), edges = 200, radius = 0.8,
clockwise = FALSE, init.angle = if(clockwise) 90 else 0,
density = NULL, angle = 45, col = NULL, border = NULL,
lty = NULL, main = NULL, ...)
主要参数的含义如下:
x 一个非负的数值型向量。x中的值决定了饼图中每个扇形的大小。
labels 用于给出每个扇区的标签。
edges : 绘制饼图时,饼图的外轮廓是由多边形近似表示的。理论上,edges的数值越大,饼图看上去越圆。
radius : R中的饼图绘制以radius为边的正方形中,取值范围为-1到1。取值-1时,默认0角度是从正左边逆时针开始,否则是从正右边逆时针开始。
clockwise : 逻辑值。指示绘制扇区时是逆时针方向排列(FALSE),还是顺时针方向排列(TRUE)。默认为逆时针。
init.angle : 开始绘制扇区时的初始角度。默认情况下,逆时针时,第一个扇区的开始边为0度(3点钟方向),并向逆时针方向展开。如果clockwise取值为TRUE时,第1个扇区的开始边为90度(12点钟方向),并向顺时针方向展开。
density : 阴影线的密度。如果设置该参数,且为正值,则饼图以阴影线进行填充,如为负值,且未指定每个扇区的颜色时,则整体为黑色,不能体现出分区来,如是0值,则没有填充色,也没有阴影线。
angle : 阴影线的斜率。默认为45度。
col : 一个颜色向量,用于给出扇区的填充色或阴影线的颜色(当设置了density参数时,就是阴影线的颜色)。
border : 每个扇区的边框颜色。
lty : 每个扇区的线型(0:无,1:实线;2:短划线;3:点线;4:点划线;5:长划线;6:双划线;)
main : 绘图的标题
下面举例子说明此函数的具体使用方法:
某销售部统计了该部门5名成员过去一周的时间的销售额情况。
(1)简单的饼图
sales <- c(122.3,169,198,110,173)
names <- c("小刚","小丽","小花","小兰","小美")
pie(sales,labels=names)
结果形式如下图所示:
(2)指定颜色
sales <- c(122.3,169,198,110,173)
names <- c("小刚","小丽","小花","小兰","小美")
pie(sales,labels=names,col=c("skyblue","lightgreen","red","blue","lightyellow"))
运行情况如下图所示:
(3)添加图例,以比例形式显示标签
sales <- c(122.3,169,198,110,173)
names <- c("小刚","小丽","小花","小兰","小美")
per.sales <- paste(round(100 * sales / sum(sales),2),"%")
slice.col <- c("skyblue","lightgreen","purple","blue","yellow")
pie(sales,labels=per.sales,col= slice.col)
legend("topright",names,cex=0.85, fill=slice.col)
显示结果如下图所示:
(4)添加标题
sales <- c(122.3,169,198,110,173)
names <- c("小刚","小丽","小花","小兰","小美")
per.sales <- paste(round(100 * sales / sum(sales),2),"%")
slice.col <- rainbow(10)
pie(sales,labels=per.sales,col= slice.col,main="X销售部第N周销售业绩情况")
legend("topright",names,cex=0.85, fill=slice.col)
运行结果如下图所示:
其它参数使用情况,在这里不再进行演示。有兴趣的读者,自己可以去尝试。
新闻热点
疑难解答