离散型数据可视化
饼图
#以失信用户数据为例,绘制学历的分布饼图
import matplotlib.pyplot as plt
edu = [0.2515,0.3724,0.3336,0.0368,0.0057]
labels = ['中专','大专','本科','硕士','其他']
#生成数据,用于突出显示大专学历人群
explode = [0,0.1,0,0,0]
#自定义颜色
colors = ['#9999ff','#ff9999','#7777aa','#2442aa','#dd5555']
#中文乱码和坐标轴负号的处理
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
#将横、纵坐标轴标准化处理,确保饼图是一个正圆,否则为椭圆
plt.axes(aspect = 'equal')
#绘制饼图
plt.pie(
x = edu, #绘图数据
explode = explode, #突出显示大专人群
labels = labels, #添加教育水平标签
colors = colors, #设定饼图的自定义填充色
autopct = '%.1f%%', #设置百分比格式,这里保留一位小数
pctdistance = 0.8, #设置百分比标签与圆心的距离
labeldistance = 1.1, #设置教育水平标签与圆心的距离
startangle = 180, #设置饼图的初始角度
radius = 1.2, #设置饼图的半径
counterclock = False, #是否逆时针,这里设置为顺时针方向
wedgeprops = {'linewidth':1.5,'edgecolor':'green'}, #设置饼图内外标签的属性值
textprops = {'fontsize':10,'color':'black'} #设置文本标签的属性值
)
#添加图标题
plt.title('失信用户的受教育水平分布')
#显示图形
plt.show()
条形图
# 数据背景:2017年中国六大省份的GDP 数据来源:互联网
#读取数据
import pandas as pd
GDP = pd.read_excel(r'D:\顾小淳的文件夹\CSDN 数据分析与机器学习 学习\数据分析1480资料\【Version2】从零开始学Python数据分析与挖掘\各章节数据源和代码\第6章 Python数据可视化\Province GDP 2017.xlsx')
#设置绘图风格(使用R语言中的ggplot2风格)
import matplotlib.pyplot as plt
plt.style.use('ggplot')
plt.rcParams['axes.unicode_minus']=False
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
#绘制条形图
plt.bar(
x=range(GDP.shape[0]), #指定条形图x轴的刻度值
height=GDP.GDP, #指定条形图y轴的数值
tick_label = GDP.Province, #指定条形图x轴的刻度标签
color = 'steelblue', #指定条形图的填充色
)
#添加y轴的标签
plt.ylabel('GDP(万亿)')
#添加条形图的标题
plt.title('2017年度6各省份GDP分布')
#为每个条形图添加数值标签
for x,y in enumerate(GDP.GDP):
plt.text(x,y+0.1,'%s'%round(y,1),ha='center')
#显示图形
plt.show()
水平条形图
#将上面的条形图进行降序或者升序处理,可以更直观一点。得到水平条形图
import pandas as pd
GDP = pd.read_excel(r'D:\顾小淳的文件夹\CSDN 数据分析与机器学习 学习\数据分析1480资料\【Version2】从零开始学Python数据分析与挖掘\各章节数据源和代码\第6章 Python数据可视化\Province GDP 2017.xlsx')
#对读入的数据作升序排序
GDP.sort_values(by='GDP',inplace=True)
#绘制条形图
import matplotlib.pyplot as plt
plt.barh(
y = range(GDP.shape[0]), #指定条形图y轴的刻度值
width = GDP.GDP, #指定条形图x轴的数值
tick_label = GDP.Province, #指定条形图y轴的标签刻度
color = 'steelblue' #指定条形图的填充色
)
#添加x轴的标签
plt.xlabel('GDP(万亿)')
#添加条形图的标题
plt.title('2017年度6各省份GDP分布')
#为每个条形图添加数值标签
for y,x in enumerate(GDP.GDP):
plt.text(x+0.3,y,'%s'%round(x,1),ha='center')
#显示图形
plt.show()
堆叠条形图
# 绘制堆叠条形图
# 2017年四个季度的产业值 数据来源:中国统计网
#读取数据
import pandas as pd
Industry_GDP = pd.read_excel(r'D:\顾小淳的文件夹\CSDN 数据分析与机器学习 学习\数据分析1480资料\【Version2】从零开始学Python数据分析与挖掘\各章节数据源和代码\第6章 Python数据可视化\Industry_GDP.xlsx')
#取出四个不同的季度标签,用作堆叠条形图x轴的刻度标签
Quarters = Industry_GDP.Quarter.unique()
#取出第一产业的四季度值
Industry1 = Industry_GDP.GPD[Industry_GDP.Industry_Type == '第一产业']
Industry1.index = range(len(Quarters)) #重新设置行索引
#取出第二产业的四季度值
Industry2 = Industry_GDP.GPD[Industry_GDP.Industry_Type == '第二产业']
Industry2.index = range(len(Quarters)) #重新设置行索引
#取出第三产业的四季度值
Industry3 = Industry_GDP.GPD[Industry_GDP.Industry_Type == '第三产业']
Industry3.index = range(len(Quarters)) #重新设置行索引
#绘制堆叠条形图
#各季度下第一产业的条形图
plt.bar(
x = range(len(Quarters)),
height = Industry1,
color = 'steelblue',
label = '第一产业',
tick_label = Quarters
)
#各季度下第二产业的条形图
plt.bar(
x = range(len(Quarters)),
height = Industry2,
bottom = Industry1,
color = 'green',
label = '第二产业'
)
#各季度下第三产业的条形图
plt.bar(
x = range(len(Quarters)),
height = Industry3,
bottom = Industry1+Industry2,
color = 'red',
label = '第三产业'
)
#添加y轴标签
plt.ylabel('生产总值(亿)')
#添加图形标题
plt.title('2017年各季度三产业总值')
#显示各产业的图例
plt.legend(loc='upper left')
#显示图形
plt.show()