Python数据可视化之Matplotlib实现各种图表

数据分析就是将数据以各种图表的形式展现给领导,供领导做决策用,因此熟练掌握饼图、柱状图、线图等图表制作是一个数据分析师必备的技能。Python有两个比较出色的图表制作框架,分别是Matplotlib和Pyechart。本文主要讲述使用Matplotlib制作各种数据图表。

Matplotlib是最流行的用于绘制2D数据图表的Python库,能够在各种平台上使用,可以绘制散点图、柱状图、饼图等。

1、柱状图

是一种以长方形或长方体的高度为变量的表达图形的统计报告图,由一系列高度不等的纵向条纹表示数据分布的情况,用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。柱状图可以用来比较数据之间的多少,可以用来观察某一事件的变化趋势,柱状图亦可横向排列,或用多维方式表达。
实现代码:

# 导入绘图模块 import matplotlib.pyplot as plt # 构建数据 sales = [7125,12753,13143,8635] # 中文乱码的处理,rcParams也可以用于设置图的分辨率,大小等信息 plt.rcParams['font.sans-serif'] =['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 绘图,第一个参数是x轴的数据,第二个参数是y轴的数据,第三个参数是柱子的大小,默认值是1(值在0到1之间),color是柱子的颜色,alpha是柱子的透明度 plt.bar(range(4), sales, 0.4,color='r', alpha = 0.8) # 添加轴标签 plt.ylabel('销量') # 添加标题 plt.title('水果2018年度销量') # 添加刻度标签 plt.xticks(range(4),['苹果','香蕉','梨','猕猴桃']) # 设置Y轴的刻度范围 plt.ylim([5000,15000]) # 为每个条形图添加数值标签 for x,y in enumerate(sales): plt.text(x,y+100,'%s' %y,ha='center') # 显示图形 plt.show()

效果图:

Matplotlib

只需绘制柱状图的函数bar()改成barh()就可以将柱状图长方形或长方体从垂直方向变为水平方向。
实现代码:

# 导入绘图模块 import matplotlib.pyplot as plt # 构建数据 sales = [7125,12753,13143,8635] # 中文乱码的处理 plt.rcParams['font.sans-serif'] =['SimHei'] plt.rcParams['axes.unicode_minus'] = False x = ['苹果','香蕉','梨','猕猴桃'] # 绘图 plt.barh(range(4), sales, 0.4,color='r', alpha = 0.8) # 添加轴标签 plt.ylabel('销量') # 添加标题 plt.title('水果2018年度销量') # 添加刻度标签 plt.yticks(range(4),['苹果','香蕉','梨','猕猴桃']) # 设置Y轴的刻度范围 plt.xlim([5000,15000]) # 为每个条形图添加数值标签 for x,y in enumerate(sales): plt.text(y+0.2,x,'%s' %y,va='center') # 显示图形 plt.show()

效果图:

Matplotlib


除了bar()函数变成barh()之外。还有其他几个地方要做修改,在给每个条形图添加数值标签时,将ha='center'改为va='center',将添加x轴标签的方法从xlabel改为ylabel。

柱状图和折线图混合使用
柱状图可以和折线图混合使用,用来表示某一个数据的变化趋势,下面是例子的柱状图表示水果的年度销量,折线图表示水果1月份的销量。

代码:

# 导入绘图模块 import matplotlib.pyplot as plt jan_sales = [3010,4029,5021,3056] # 构建数据 sales = [7125,12753,13143,8635] # 中文乱码的处理 plt.rcParams['font.sans-serif'] =['SimHei'] plt.rcParams['axes.unicode_minus'] = False x = ['苹果','香蕉','梨','猕猴桃'] plt.plot(x,jan_sales,'r')# 折线 1 x 2 y 3 color plt.plot(x,jan_sales,'g',lw=5)# 4 line w # 绘图 plt.bar(range(4), sales, 0.4,color='b', alpha = 0.8) # 添加轴标签 plt.ylabel('销量') # 添加标题 plt.title('水果2018年度销量') # 添加刻度标签 plt.xticks(range(4),['苹果','香蕉','梨','猕猴桃']) # 设置Y轴的刻度范围 plt.ylim([2000,15000]) # 为每个条形图添加数值标签 for x,y in enumerate(sales): plt.text(x,y+100,'%s' %y,ha='center') # 显示图形 plt.show()

效果图:

Matplotlib

2、折线图
折线图主要用于表示数据变化的趋势。折线图是直线将不同的点连接起来。

# 导入绘图模块 import matplotlib.pyplot as plt #构建数据 jan_sales = [3010,4029,5021,3056] # 中文乱码的处理 plt.rcParams['font.sans-serif'] =['SimHei'] plt.rcParams['axes.unicode_minus'] = False x = ['苹果','香蕉','梨','猕猴桃'] #第一个参数是x轴,第二参数时y轴数据,第三个参数是线的颜色,第二个参数是线条的粗细 plt.plot(x,jan_sales,'r',lw=5)# 4 line w # 添加标题 plt.title('水果2018年度1月份销量图') plt.ylim([2000,15000]) # 为每个点添加数值标签 for x,y in enumerate(jan_sales): plt.text(x,y+100,'%s' %y,ha='center') # 显示图形 plt.show()

效果图:

Matplotlib

折线图通过调用plot()方法绘制。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxgpg.html