当前位置:   article > 正文

python 可视化分析平台_python 数据分析数据可视化工具matplotlib

python plt.text(x,y+0.1

说明:

数据可视化中的数据集下载地址:(数据来源:从零开始学python数据分析和挖掘)

链接:https://pan.baidu.com/s/1zrNpzSNVHd8v1rGFRzKipQ 提取码:mx9d

数据可视化是数据分析中的一部分,可用于数据的探索和查找缺失值等,也是展现数据的重要手段。matplotlib是一个强大的工具箱,其完整的图表样式函数和个性化的自定义设置,可以满足几乎所有的2D和一些3D绘图的需求。

1. 条形图

条形图主要用来表示分组(或离散)变量的可视化,可以使用matplotlib完成条形图的绘制。

1.1 垂直条形图

以垂直条形图为例,离散型变量在各水平上的差异就是比较柱形的高低,柱体越高,代表的数值越大。plt.bar()函数的参数列表:

left:传递数值序列,指定条形图中x轴上的刻度值,现left需改为x。

height:传递数值序列,指定条形图y轴上的高度。

width:指定条形图的宽度,默认为0.8。

bottom:用于绘制堆叠条形图。

color:指定条形图的填充色。

edgecolor:指定条形图的边框色。

linewidth:指定条形图边框的宽度,如果指定为0,表示不绘制边框。

tick_label:指定条形图的刻度标签。

xerr:如果参数不为None,表示在条形图的基础上添加误差棒。yerr:参数含义同xerr。

label:指定条形图的标签,一般用以添加图例。

ecolor:指定条形图误差棒的颜色。

align:指定x轴刻度标签的对齐方式,默认为center,表示刻度标签居中对齐,如果设置为 edge,则表示在每个条形的左下角呈现刻度标签。

log:bool类型参数,是否对坐标轴进行log变换,默认为False。

**kwargs:关键字参数,用于对条形图进行其他设置,如透明度等。

80f0a8919200e48ea8300ac912c6c5b1.png

import matplotlib.pyplot as plt

import pandas as pd

# 条形图的绘制--垂直条形图

# 读入数据

GDP = pd.read_excel(r'E:Data4Province GDP 2017.xlsx')

# 设置绘图风格(不妨使用R语言中的ggplot2风格)

plt.style.use('ggplot')

# 解决中文显示问题

plt.rcParams['font.sans-serif'] = ['KaiTi']

plt.rcParams['axes.unicode_minus'] = False

# 添加条形图的标题

plt.title('2017年度6个省份GDP分布')

# 添加y轴的标签

plt.ylabel('GDP(万亿)')

# 绘制条形图

plt.bar( x = range(GDP.shape[0]), # 指定条形图x轴的刻度值

height = GDP.GDP, # 指定条形图y轴的数值

tick_label = GDP.Province, # 指定条形图x轴的刻度标签

color = 'pink', # 指定条形图的填充色

)

# 为每个条形图添加数值标签

for x,y in enumerate(GDP.GDP):

plt.text(x,y+0.1,'%s' %round(y,1),ha='center') #round 四舍五入保留1位小数

# 显示图形

plt.show()

a406f1506729b5debe768a2eeb5d36ff.png

1.2 水平条形图

水平条形图不再是bar函数,而是barh函数。对原始数据做升序排序,但是图形看上去是降序,是因为水平条形图的y轴刻度值是从下往上布置的,所以条形图从下往上是满足升序的。

# 条形图的绘制--水平条形图

# 导入第三方库和读入数据同上

# 添加条形图的标题

plt.title('2017年度6个省份GDP分布')

# 添加x轴的标签

plt.xlabel('GDP(万亿)')

# 对读入的数据作升序排序

GDP.sort_values(by = 'GDP', inplace = True)

# 绘制条形图

plt.barh(y = range(GDP.shape[0]), # 指定条形图y轴的刻度值

width = GDP.GDP, # 指定条形图x轴的数值

tick_label = GDP.Province, # 指定条形图y轴的刻度标签

color = 'green', # 指定条形图的填充色

)

# 为每个条形图添加数值标签

for y,x in enumerate(GDP.GDP):

plt.text(x+0.1,y,'%s' %round(x,1),va='center') #此处x在前,y在后,数值标签加在x上, 居中也是垂直方向居中

# 显示图形

plt.show()

e1f25289c95afb2a0c2292507ecb01de.png

1.3 堆叠条形图

不管是垂直条形图还是水平条形图,只是反映单个离散变量的统计图形,如果想通过条形图传递两个离散变量的信息该如何做到?这就需要使用堆叠条形图,该类型条形图的横坐标代表一个维度的离散变量,堆叠起来的“块”代表了另一个维度的离散变量。这样的条形图,最大的优点是可以方便比较累积和。

1898e135a2baa0e44766cb3d077007ba.png

# 条形图的绘制--堆叠条形图

# 读入数据

Industry_GDP = pd.read_excel(r'E:Data4Industry_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 == '第三产业']

# 绘制堆叠条形图

# 各季度下第一产业的条形图

plt.bar(x = range(len(Quarters)), height=Industry1, color = 'yellow', 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年各季度三产业总值')

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/426481
推荐阅读
相关标签
  

闽ICP备14008679号