【实验楼/matplotlib.pyplot】matplotlib画图初览

matplotlib的使用方法

先导入相应的模块

from matplotlib import pyplot as plt

再使用plt中特有的方法来进行画图。

  1. 柱状图——plt.bar(专门用来比较大小)
  2. 直方图——plt.barh(专门用来查看分布)
  3. 饼状图——plt.pie(专门用来查看比例)
  4. 折线图——plt.plot(专门用来绘制相应函数图像)
  5. 散点图——plt.scatter
  6. 等高线图——plt.contour
    (注意区分直方图和柱状图的区别)

这些方法接受两个数组类型(包括ndarray类型以及所有可以转化为ndarray的类型)
我们可以使用numpy.linspace来生成相应的数组进行测试

自定义图形的样式

就是再相应的绘图函数中添加相应的关键字参数,比如:

  1. color——颜色
  2. linestyle——线型的样式
  3. linewidth——线型的宽度
  4. alpha——不透明度
    (除此之外还有很多,而且这里只给出了关键字参数的名字,并没有给出我们应该给他们赋予什么样的参数,所以我建议还是移步至官方文档)

组合图形样式

我们绘图中还有一个需求就是希望把不同的图像画在一起。当然我们plt肯定是实现了这些,只有当我们把使用相同的x内容的时候,matplotlib才会把这些图形都放在一起。

组合图形的时候,可能需要一种更加高级的操作。
那就是自己搭建图片的环境。

  1. 首先,先创建画板对象fig = plt.figure()
  2. 在画布对象的基础上创建画布对象axes = fig.add_axes([a, b, c, d])——注意这里a, b, c, d分别代表了画布左下角的两个坐标,以及画布的宽高
  3. 再使用axes的**plot方法(或者其它的方法)**画图。

还有一种方法也可以实现子图的绘制。
那就是利用plt.subplots().

然后通过这个函数返回的fig和axes对象(尤其是axes对象),
我们就能定制我们的输出了

规范画图方法

我们需要一套约定,来规范我们的画图流程,这样我们就能避免想怎么做,就怎么做的缺点。

一个比较好的建议是:不要仅仅是使用plt.plot来绘制图像,而应该使用plt.subplots方法来使用

·添加图表题,图例,xy轴代表的意义

  1. 添加图标题——axes.set_title()
  2. 添加xy轴名称——axes.set_xlabel(); axes.set_ylable();
  3. 添加图例——axes.legend();
    (你要知道图例在我们的axes上是一个单独的单元,我们可以通过传入一个list对象来进行绘制)

·添加坐标轴范围

使用**set_ylim()和set_xlim()**来设定坐标轴的范围

参数是一个两个元素的列表

·图形标注方法

如果我们能够在我们的图形上做一些标注,那我们的图形肯定会更加清晰。

你要知道的是我们在我们的axes上标注,只有plt.text方法,这个方法接受三个参数:

  1. 文本的x坐标
  2. 文本的y坐标
  3. 文本的内容,可以使用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上的一些问题。

你可能感兴趣的:(实验楼)