Abstract:matplotlib入门实战全教程,教你如何绘制条形图、饼图、箱线图,附代码和相关学习资料。
1.MATPLOTLIB
Matplotlib的设计理念是能够用轻松简单的方式生成强大的可视化效果,是Python学习过程中核心库之一。
用在python中绘制数组的2D图形库
matplotlib代码在概念上分为3个部分:
1.pylab接口是由matplotlib.pylab提供的函数集,允许用户使用非常类似于MATLAB图生成代码的代码创建绘图
2.matplotlib前端或API是一组重要的类,可创建和管理图形,文本,线条,图表等(艺术家教程),是一个对输出无所了解的抽象接口
3.后端是设备相关的绘图设备,也称为渲染器,将前端表示转换为打印件或显示设备;后端示例:PS 创建 PostScript® 打印件,SVG 创建可缩放矢量图形打印件,Agg 使用 Matplotlib 附带的高质量反颗粒几何库创建 PNG 输出,GTK 在 Gtk+ 应用程序中嵌入 Matplotlib,GTKAgg 使用反颗粒渲染器创建图形并将其嵌入到 Gtk+ 应用程序中,以及用于 PDF,WxWidgets,Tkinter 等
2.绘制条形图(BAR CHART)
条形图实际上是用来表示分组(或离散)变量的可视化,可以使用matplotlib模块中的bar函数完成条形图的绘制。
2.1 简单垂直条形图
Example1: 2017世界国家GDP排名(见下图),我们需要用matplotlib绘制展现以下数据的条形图。后端示例:PS 创建 PostScript® 打印件,SVG 创建可缩放矢量图形打印件,Agg 使用 Matplotlib 附带的高质量反颗粒几何库创建 PNG 输出,GTK 在 Gtk+ 应用程序中嵌入 Matplotlib,GTKAgg 使用反颗粒渲染器创建图形并将其嵌入到 Gtk+ 应用程序中,以及用于 PDF,WxWidgets,Tkinter 等
# 导入绘图模块 import matplotlib.pyplot as plt # 构建数据 GDP = [12406.8,13908.57,9386.87,9143.64] # 中文乱码的处理 plt.rcParams['font.sans-serif'] =['Microsoft YaHei'] plt.rcParams['axes.unicode_minus'] = False # 绘图 plt.bar(range(4), GDP, align = 'center',color='steelblue', alpha = 0.8) # 添加轴标签 plt.ylabel('GDP') # 添加标题 plt.title('四个直辖市GDP大比拼') # 添加刻度标签 plt.xticks(range(4),['北京市','上海市','天津市','重庆市']) # 设置Y轴的刻度范围 plt.ylim([5000,15000]) # 为每个条形图添加数值标签 for x,y in enumerate(GDP): plt.text(x,y+100,'%s' %round(y,1),ha='center') # 显示图形 plt.show()
以上是绘制图形的代码,运行代码得到的条形图如下:
Example2:2017中国城市GDP排名(见下图),同样我们用matplotlib绘制展现其数据的条形图。
# World GDP Rank GDP = [185691, 112182.8, 49386.4, 34666.3] plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] plt.rcParams['axes.unicode_minus'] = False plt.bar(range(4), GDP, align='center',color='purple',alpha=0.5) plt.ylabel('GDP') plt.title('2017 World GDP Rank') plt.xticks(range(4), ['USA', 'China', 'Japan', 'Germany']) plt.ylim([10000, 200000]) for x,y in enumerate(GDP): plt.text(x,y+100,'%s' %round(y,1),ha='center') plt.show()
以上是绘制图形的代码,运行代码得到的条形图如下:
代码解释:
rcParams:由于matplotlib对中文的支持并不是很友好,所以需要提前对绘图进行字体的设置,即通过rcParams来设置字体,这里将字体设置为微软雅黑,同时为了避免坐标轴不能正常的显示负号,也需要进行设置;
bar函数指定了条形图的x轴、y轴值,设置x轴刻度标签为水平居中,条形图的填充色color为铁蓝色,同时设置透明度alpha为0.8;
添加y轴标签、标题、x轴刻度标签值,为了让条形图显示各柱体之间的差异,将y轴范围设置在5000~15000;
通过循环的方式,添加条形图的数值标签;
2.2 简单水平条形图
Example3:同一本书不同平台最低价比较