R语言可视化饼图比例分析

R语言可视化饼图比例分析

可视化分析时常常需要分析物品所占的比例,我们可以使用饼图进行比例分析。本例中我们使用R连接MySQL,获取MySQL中的car_action表数据从而统计汽车所使用的燃料的比例。
R语言可视化饼图比例分析_第1张图片
1.启动MySQL

service mysql start
mysql -u root -p

2.连接MySQL,并获取数据

library(RMySQL)
conn<- dbConnect(MySQL(),dbname='dblab',username='root',password='hadoop',host="127.0.0.1",port=3306)
car_action <- dbGetQuery(conn,'select * from car_action')

3.数据处理

library(ggplot2)
temp <- subset(car_action,fuel=='天然气'|fuel=='柴油'|fuel=='汽油'|fuel=='汽油天然气'|fuel=='混合动力'|fuel=='电')
temp1<-sort(table(temp$fuel),decreasing=T)

在上面的命令语句中,subset()函数用于从某一个数据集中选择出符合某条件的数据或者相关的列。table()对应的就是统计学中的“列联表”,是一种记录频数的方法。sort()用来完成排序,返回排序后的数值向量。上述命令执行结果如下:在这里插入图片描述
使用as.data.frame()函数把temp1转换成为数据框:

result <- as.data.frame(temp1)

上述命令执行结果如下:
R语言可视化饼图比例分析_第2张图片
4.比例分析

myLabel = as.vector(result$Var1)## 转成向量,否则图例的标签可能与实际顺序不一致
myLabel1 = paste(myLabel, "(", round(result$Freq/sum(result$Freq), 3), "%)", sep = "")## 用 round() 对结果保留三位小数
ggplot(result, aes(x = '', y = Freq, fill = Var1))+  #创建坐标轴
geom_bar(stat = 'identity', width = 1) +  #当width >= 1 时中心的杂点将消失
coord_polar(theta = 'y')+   # 把柱状图折叠成饼图(极坐标)
labs(x = "", y = "", title = "") +   # 将横纵坐标的标签设为空
theme(axis.ticks = element_blank()) +   # 将左上角边框的刻度去掉
scale_fill_discrete(breaks = result$Var1, labels = myLabel1)+   # 将原来的图例标签换成现在的myLabel
theme(legend.title = element_blank())+  ## 将图例标题设为空
theme(axis.text.x = element_blank())  ## 去掉饼图的外框上的数值,即去除原柱状图的X轴,把X轴的刻度文字去掉

上述命令执行结果如下:

R语言可视化饼图比例分析_第3张图片

本例所用资源链接:https://download.csdn.net/download/Wing_kin666/12412346

参考链接:https://blog.csdn.net/tandelin/article/details/87887368

你可能感兴趣的:(mysql,r语言)