【实验楼/matplotlib.pyplot】matplotlib画图初览
matplotlib的使用方法
先导入相应的模块
from matplotlib import pyplot as plt
再使用plt中特有的方法来进行画图。
- 柱状图——plt.bar(专门用来比较大小)
- 直方图——plt.barh(专门用来查看分布)
- 饼状图——plt.pie(专门用来查看比例)
- 折线图——plt.plot(专门用来绘制相应函数图像)
- 散点图——plt.scatter
- 等高线图——plt.contour
(注意区分直方图和柱状图的区别)
这些方法接受两个数组类型(包括ndarray类型以及所有可以转化为ndarray的类型)
我们可以使用numpy.linspace来生成相应的数组进行测试
自定义图形的样式
就是再相应的绘图函数中添加相应的关键字参数,比如:
- color——颜色
- linestyle——线型的样式
- linewidth——线型的宽度
- alpha——不透明度
(除此之外还有很多,而且这里只给出了关键字参数的名字,并没有给出我们应该给他们赋予什么样的参数,所以我建议还是移步至官方文档)
组合图形样式
我们绘图中还有一个需求就是希望把不同的图像画在一起。当然我们plt肯定是实现了这些,只有当我们把使用相同的x内容的时候,matplotlib才会把这些图形都放在一起。
组合图形的时候,可能需要一种更加高级的操作。
那就是自己搭建图片的环境。
- 首先,先创建画板对象fig = plt.figure()
- 在画布对象的基础上创建画布对象axes = fig.add_axes([a, b, c, d])——注意这里a, b, c, d分别代表了画布左下角的两个坐标,以及画布的宽高。
- 再使用axes的**plot方法(或者其它的方法)**画图。
还有一种方法也可以实现子图的绘制。
那就是利用plt.subplots().
然后通过这个函数返回的fig和axes对象(尤其是axes对象),
我们就能定制我们的输出了
规范画图方法
我们需要一套约定,来规范我们的画图流程,这样我们就能避免想怎么做,就怎么做的缺点。
一个比较好的建议是:不要仅仅是使用plt.plot来绘制图像,而应该使用plt.subplots方法来使用
·添加图表题,图例,xy轴代表的意义
- 添加图标题——axes.set_title()
- 添加xy轴名称——axes.set_xlabel(); axes.set_ylable();
- 添加图例——axes.legend();
(你要知道图例在我们的axes上是一个单独的单元,我们可以通过传入一个list对象来进行绘制)
·添加坐标轴范围
使用**set_ylim()和set_xlim()**来设定坐标轴的范围
参数是一个两个元素的列表
·图形标注方法
如果我们能够在我们的图形上做一些标注,那我们的图形肯定会更加清晰。
你要知道的是我们在我们的axes上标注,只有plt.text方法,这个方法接受三个参数:
- 文本的x坐标
- 文本的y坐标
- 文本的内容,可以使用c的字符串格式化语法来做
一般而言我们会在柱状图上标注柱子所代表的大小,我们matplotlib自然是提供了一个很简单的方法来帮我们实现这个需求:
bars = axes.bar(x_bar, y_bar, color='blue', label=x_bar, width=2) # 绘制柱形图
for i, rect in enumerate(bars):
x_text = rect.get_x() # 获取柱形图横坐标
y_text = rect.get_height() + 0.01 # 获取柱子的高度并增加 0.01
plt.text(x_text, y_text, '%.1f' % y_bar[i]) # 标注文字
PS: 文中说我们可以使用pylab来使用类似于matlab的接口,但是这个在我们matplotlib的official document中是discourage的,因为可能会造成namespace上的一些问题。
上一篇: 【论文阅读】19-Multi-View Stereo Reconstruction and Scene Flow Estimation with a Global Image-Based Matchi
下一篇: SurfaceView
推荐阅读
-
matplotlib.pyplot画图从入门到精通,系统教程,满足你的可视化需求
-
matplotlib.pyplot 画图
-
matplotlib.pyplot画图 图片的二进制流的获取方法
-
解决 Windows10 下 wsl 使用 matplotlib.pyplot 画图没反应的问题
-
matplotlib.pyplot画图 图片的二进制流的获取方法
-
matplotlib.pyplot dataframe画图调节大小
-
【转】Python应用matplotlib.pyplot画图总结
-
matplotlib.pyplot画图报QT错误
-
【实验楼/matplotlib.pyplot】matplotlib画图初览
-
Python使用matplotlib.pyplot画图显示中文