在R语言中绘制饼图的函数为pie,其使用格式如下
Usage
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 : 绘图的标题
1. 简单用法
# default name
pie(rep(1, 24), col = rainbow(24), radius = 0.9)
pie(c(0.3,0.5,0.2))
# name
pie.sales <- c(0.12, 0.3, 0.26, 0.16, 0.04, 0.12)
names(pie.sales) <- c("Blueberry", "Cherry",
"Apple", "Boston Cream", "Other", "Vanilla Cream")
pie(pie.sales) # default colours
pie(c(Sky = 78, "Sunny side of pyramid" = 17, "Shady side of pyramid" = 5),
init.angle = 315)
2. 加颜色,图注等
pie.sales <- c(0.12, 0.3, 0.26, 0.16, 0.04, 0.12)
names(pie.sales) <- c("Blueberry", "Cherry",
"Apple", "Boston Cream", "Other", "Vanilla Cream")
pie(pie.sales) # default colours
pie(pie.sales,clockwise = TRUE) # default colours
# 灰度图
pie(pie.sales, col = gray(seq(0.4, 1.0, length.out = 6)))
# 选定颜色
pie(pie.sales, col = c("purple", "violetred1", "green3",
"cornsilk", "cyan", "white"))
# 加图注
legend("topright",names(pie.sales),cex=0.85, fill=c("purple", "violetred1", "green3","cornsilk", "cyan", "white"))
# 加上一定角度的条纹
pie(pie.sales, density = seq(10,35,by=5), angle = 15 + 10 * 1:6)
pie(pie.sales, density = 30, angle = 15 + 10 * 1:6)
# density: 条纹密度
#angle:条纹角度
pie(pie.sales, density = 30, angle = 15 + 10 * 1:6,col = c("purple", "violetred1", "green3","cornsilk", "cyan", "white"))
# 加标题
pie(pie.sales, clockwise = TRUE, main = "pie(*, clockwise = TRUE)")
# 加线段
segments(0, 0, 0, 1, col = "red", lwd = 2)
# 加文字
text(0, 1, "init.angle = 90", col = "red")
3. 画三维饼图和扇形图
需要plotrix软件包。
pie3D(x, main, labels,explode, radius, height..)
参数
main:饼图主标题
labels:各个“块”的标签
explode:各个“块”之间的间隔,默认值为0
radius:整个“饼”的大小,默认值为1,0~1为缩小
height:饼块的高度,默认值为0.1
install.packages("plotrix")
library(plotrix)
x <- c(10,20,30,40,50)
label <- c("Alabama","Alaska", "Arizona", "Arkansas", "California")
pie3D(x,labels=label,radius=0.8,explode=0.05,main="PieChart of Countries")
# 保存图片
png(filename = "test.png",width = 1000,height = 800)
fan.plot(x,labels = label, main="Fan Plot",col= terrain.colors(length(x)))#可使用函数内置的颜色
legend("bottomright",cex=0.6,label, fill= terrain.colors (length(x)))
dev.off()