python对CSV文件进行可视化-饼图
Posted 叶叶酱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python对CSV文件进行可视化-饼图相关的知识,希望对你有一定的参考价值。
使用Matplotlib提供的pie()函数绘制饼图
一、环境准备
-
python
-
pip install matplotlib
二、pie()函数常见参数
1. 基本绘制
import matplotlib.pyplot as plt
values = [10,20,30]
plt.pie(values)
plt.show()
2. 参数:explode
意义:分离饼状图,突出强调某一部分;
默认:None;
调用:explode=[0, 0, 0.2, 0]
3. 参数:labels
意义:给各个部分添加标签;
默认:None;
调用:labels=[‘A’, ‘B’, ‘C’, ‘D’]
4. 参数:labeldistance
意义:标签距离饼状图的距离;
默认:1.1;
调用:labeldistance = float(实数)
5. 参数:colors
意义:设置每一部分的颜色;
默认:自动填充;
调用:colors=[‘red’, ‘gray’, ‘yellow’, ‘blue’]
注意:颜色个数必须等于values中数据的个数
6. 参数:autopct
意义:显示各部分比例,保留小数位数;
默认:None;
调用:autopct=’%1.2f%%’
7. 参数:shadow
意义:阴影,增加立体感;
默认:False;
调用:shadow=True
三、实例
以下是读取CSV文件中的数据,并绘制成饼图的一个简单实例,主要就是对pie()函数的使用.
# 加载数据分析常用库
import csv
import matplotlib.pyplot as plt
filename = r\'D:\\learn\\project\\reptile\\job.csv\'
with open(filename) as f:
# 创建阅读器,调用csv.reader()将前面存储的文件对象作为实参传给他
reader = csv.reader(f)
# 调用next()一次,将文件的第一行存储在header_now中
header_now = next(reader)
# 根据索引提取薪资范围,并存储在列表中
money = []
for row in reader:
money.append(row[2])
"""
从获取的薪资范围列表中分别提取出每个公司给出的最低薪资和最高薪资,
并将提取到的字符串转化为float格式存储
"""
listmoney = []
for m in money:
num = m.split(\'-\') # 通过‘-’分割
low = num[0] # 提取最低薪资
high = num[1].split(\'万/月\')[0] # 提取最高薪资,并将后缀单位去除
# 转化数据格式为float
lows = float(low)
highs = float(high)
listmoney.append(lows)
listmoney.append(highs)
print(listmoney)
# 设置变量
one = 0
two = 0
three = 0
four = 0
five = 0
for i in listmoney:
if 0 < i <= 1:
one += 1
elif 1 < i <= 1.5:
two += 1
elif 1.5 < i <= 2:
three += 1
elif 2 < i <= 2.5:
four += 1
elif highs >= 2.5:
five += 1
print(one,two,three,four,five)
"""
绘制饼图
"""
# 用来正常显示中文标签
plt.rcParams[\'font.sans-serif\'] = [\'SimHei\']
# 图标描述
labels = [\'0-1万/月\',\'1-1.5万/月\',\'1.5-2万/月\',\'2~2.5万/月\',\'2.5+ 万/月\']
# 对应变量
values = [one,two,three,four,five]
# 旋转角度,将排在第二位的薪资分离出来,突出显示
explode = [0,0.05,0,0,0]
# 自定义图例颜色
colors = [\'orange\',\'pink\',\'b\',\'g\',\'red\']
# 图表题目
plt.title("上海市软件测试薪资分布",fontsize = 16,pad=15)
# 各项属性
plt.tick_params(axis=\'both\', which=\'major\', labelsize=26)
"""
# autopct=\'%1.1f%% 设置百分比,保留两位小数
# pctdistance=0.8, #设置百分比标签和圆心的距离
# startangle=180 设置饼图的初始角度
"""
plt.pie(values, labels=labels, colors=colors,pctdistance=0.6,explode = explode ,startangle=180, shadow=True, autopct=\'%0.2f%%\')
# 将横、纵坐标轴标准化处理,保证饼图是一个正圆,否则为椭圆
plt.axis(\'equal\')
# 不显示边框
plt.gca().spines[\'right\'].set_color(\'none\')
plt.gca().spines[\'top\'].set_color(\'none\')
plt.gca().spines[\'left\'].set_color(\'none\')
plt.gca().spines[\'bottom\'].set_color(\'none\')
# 保存图片
# plt.savefig(\'D:\\\\learn\\\\salary.png\')
# 显示图片
plt.show()
显示效果图:
以上是关于python对CSV文件进行可视化-饼图的主要内容,如果未能解决你的问题,请参考以下文章
100天精通Python(可视化篇)——第81天:matplotlib绘制不同种类炫酷饼图参数说明+代码实战(自定义百分比多个子图圆环嵌套饼图)