python excel 图表 matplotlib_python数据可视化---利用matplotlib绘制图表

离散型数据可视化

饼图

#以失信用户数据为例,绘制学历的分布饼图

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()

你可能感兴趣的:(python,excel,图表,matplotlib)