Q企鹅:78591673 99247405 878786826 wx:A878786826
from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体支持
对于折线图的绘制,在之前博客的示例中都有使用,在面向对象绘图方法中,一般是创建axes实例后调用plot()方法实现折线图绘制,并通过传递各种参数实现对图像的设置。 散点图的绘制通过axes实例的scatter()方法来实现。scatter()方法的参数和参数取值与绘制折线图的plot()方法基本一致,所以本文将两种图放在一起进行介绍。
1 多图像绘制
在一个axes中,可以绘制多条折线图,秩序多次调用plot()或者scatter()方法即可。
In [2]:
x1 = np.linspace(0.0, 5.0, 10) y1 = np.cos(2 * np.pi * x1) * np.exp(-x1) fig, axes = plt.subplots(1, 2, figsize=(10, 3), tight_layout=True) # 折线图 axes[0].set_title('图1 折 线 图') axes[0].plot(x1, y1) axes[0].plot(x1, y1+0.5) # 散点图 axes[1].set_title('图2 散 点 图') axes[1].scatter(x1, y1) axes[1].scatter(x1, y1+0.5) plt.show()
2 颜色
颜色通过color参数来设置,color参数的值可以使颜色的英文全称,例如'green'、'red',也可以是简写,例如'g'表示'green'、'r表示'red',一些常见颜色全称和简写如下所示。
'b'
, blue'g'
, green'r'
, red'c'
, cyan'm'
, magenta'y'
, yellow'k'
, black'w'
, white
如果觉得这些常见的颜色不够用,设置可以用16进制字符来表示颜色。
In [3]:
x1 = np.linspace(0.0, 5.0, 10) y1 = np.cos(2 * np.pi * x1) * np.exp(-x1) fig, axes = plt.subplots(1, 2, figsize=(10, 3), tight_layout=True) # 折线图 axes[0].set_title('图1 折 线 图') axes[0].plot(x1, y1, color='red') # 红色 axes[0].plot(x1, y1+0.5, color='g') # 绿色 axes[0].plot(x1, y1+1, color='#008000') # 也是绿色 # 散点图 axes[1].set_title('图2 散 点 图') axes[1].scatter(x1, y1, color='red') # 红色 axes[1].scatter(x1, y1+0.5, color='g') # 绿色 axes[1].scatter(x1, y1+1, color='#008000') # 也是绿色 plt.show()
3 图例
axes实例中提供了legend()方法用于添加图例,legend()方法会将元素的label字符串设置为图例,如下面的示例所示,有两种参数传递方式来设置label。除了label外,还可以传递loc参数来设置图例的位置,loc参数值可以使代表位置的字符串,也可以是对应的整数,其对应关系如下所示:
=============== =============
Location String Location Code
=============== =============
'best' 0
'upper right' 1 'upper left' 2 'lower left' 3 'lower right' 4 'right' 5 'center left' 6 'center right' 7 'lower center' 8 'upper center' 9 'center' 10 =============== =============
In [4]:
x1 = np.linspace(0.0, 5.0, 10) y1 = np.cos(2 * np.pi * x1) * np.exp(-x1) fig, axes = plt.subplots(3, 2, figsize=(10, 8), tight_layout=True) axes[0, 0].plot(x1, y1, label='线1') # 传递label参数 axes[0, 0].plot(x1, y1+0.5, label='线2') # 传递label参数 axes[0, 0].legend(loc='best') # 默认就是best axes[1, 0].plot(x1, y1, label='线1') # 传递label参数 axes[1, 0].plot(x1, y1+0.5, label='线2') # 传递label参数 axes[1, 0].legend(loc='lower right') line1, = axes[2, 0].plot(x1, y1) # 注意,等号前面有逗号 line2, = axes[2, 0].plot(x1, y1+0.5) axes[2, 0].legend(handles=(line1, line2), labels=('线1', '线2'), loc='upper center') axes[0, 1].scatter(x1, y1, label='第一组') # 传递label参数 axes[0