首页 » SEO优化 » piegraph中文php技巧_孙老湿画图系列第六弹丨饼图 Pie Graph

piegraph中文php技巧_孙老湿画图系列第六弹丨饼图 Pie Graph

访客 2024-12-18 0

扫一扫用手机浏览

文章目录 [+]

饼图,苏格兰政治经济学作家WilliamPlayfair(1759 – 1823)在1801年为了展示土耳其帝国领域面积时首次利用,如上图。

普莱菲也被称为「视觉图表之父」,他所制订的直方图、线图、圆饼图,影响后世至巨。

piegraph中文php技巧_孙老湿画图系列第六弹丨饼图 Pie Graph

饼图显示的是数据中各项的大小与各项总和的比例,它的数据有以下几个哀求:

piegraph中文php技巧_孙老湿画图系列第六弹丨饼图 Pie Graph
(图片来自网络侵删)

仅有一个要绘制的数据系列

要绘制的数值没有负值

要绘制的数值险些没有零值

种别数目无限制

各个部分代表的是百分比

在R是绘制饼图有很多种方法,比如根本函数pie()、plotrix包中的pie3D()函数绘制3D饼图、以及ggplot2等都可以实现饼图的绘制,比较而言ggplot绘制饼图略微繁芜一点,接下来将对这三种方法逐一作一先容。

R的根本函数pie()绘制饼图,常用参数如下:

x

用于绘图的数据

labels

数据对应的标签

radius

半径

col

设定颜色

clockwise

逻辑值,TRUE为顺时针,FALSE为逆时针

仿照数据x(必须是各个部分的比例),给定标签,设定颜色color(也可以利用默认颜色,但一样平常不是很好看):

x <- c(0.24, 0.3, 0.26, 0.16, 0.04)

y <- c(\"大众A\公众,\"大众B\"大众,\"大众C\"大众, \"大众D\公众, \"大众Others\公众)

color <- c(\公众#1B9E77\"大众,\公众#D95F02\公众, \公众#7570B3\"大众, \"大众#E7298A\"大众,\公众#B3B3B3\"大众)

pie(x, labels = y, col = color)

plotrix包中的pie3D(),基本参数如下:

x

用于绘图的数据

labels

数据对应的标签

radius

半径

col

设定颜色

theta

设定倾斜程度

首先仿照数据x(必须是各个部分的比例),给定标签,其次设定颜色color(也可以利用默认颜色,一样平常不是很好看)

install.packages(\"大众plotrix\"大众)

library(\"大众plotrix\公众)

pie3D(x, labels = y, col = color, theta =0.5)

ggplot2种绘制饼图,实在是把柱形图做了一次极坐标转换coord_polar(),柱形图绘制可拜会另一篇文章。

1、如果我们柱形图是并列式,并按照x轴极化坐标轴,会绘制出类似雷达图coord_polar(theta = \"大众x\"大众):

library(ggplot2)

df <- data.frame(x, y)

df$Gr <- \公众Group\"大众

p <- ggplot(df, aes(y, x, fill = y)) +

geom_bar(stat = \"大众density\"大众) +

coord_polar(theta =\"大众x\"大众)

p

2、绘制正宗的饼图,须要先绘制叠加的柱形图,然后在y轴加极坐标转换coord_polar(theta = \"大众y\"大众):

p <- ggplot(df, aes(Gr, x, fill = y)) +

geom_bar(stat = \"大众density\"大众, width = 1, position= \"大众fill\"大众) +

coord_polar(theta = \"大众y\公众) +

theme_bw() +

theme(axis.text = element_blank(),

axis.title = element_blank(),

panel.grid = element_blank(),

panel.border = element_blank())

p

3、在ggplot中还可以借鉴饼图的思路,绘制环形图,每一环代表一个分组:

仿照数据:

specie <- c(rep(\公众sorgho\公众 , 3), rep(\"大众poacee\"大众 , 3) , rep(\"大众banana\"大众 , 3) ,rep(\"大众triticum\"大众 , 3) )

condition <- rep(c(\"大众normal\"大众 ,\公众stress\"大众 , \"大众Nitrogen\"大众) , 4)

value <- abs(rnorm(12 , 0 , 15))

data <- data.frame(specie,condition,value)

head(data)

绘制代码:

p <- ggplot(data, aes(x=specie, y=value, fill=condition)) +

geom_bar(stat=\"大众identity\"大众, position=\"大众fill\"大众, width =0.9) +

theme_bw() +

theme(axis.title = element_blank(),

axis.text.x = element_blank(),

plot.title = element_text(hjust = 0.5, size = 20),

panel.grid = element_blank()) +

coord_polar(theta = \公众y\"大众)

p

本系列课程紧张侧重于讲解图形事理,以及在R中的实现过程,并没有特意追求都雅,故很多图的细节部分润色有限,大家重点理解实现过程。

本期图饼就分享到这里。
不知不觉【孙老湿画图系列】已经和小伙伴们分享了六期,你是不是自己也进行了练习了呢?有任何问题欢迎留言和孙老湿沟通~~

下一期的内容是如何进行颜色设置,孙老湿与你不见不散!

标签:

相关文章