Matplotlib 是 Python 中最常用的绘图库之一,它能够帮助用户轻松地将数据可视化,并能绘制出高质量的图表。学习 Matplotlib 对于使用 Python 进行数据可视化来说是必不可少的。建议大家亲自编写代码,以便更好地理解和掌握相关知识。
接下来的内容包括:
在 Matplotlib 中,坐标轴线和刻度组合在一起形成了脊柱(英文称为 Spines)。这些脊柱可以放置在任意位置,但通常默认位于图的四周。下面是一个简单的例子,演示如何隐藏某些脊柱:
```python import numpy as np import matplotlib.pyplot as plt
plt.figure(figsize=(5, 5))
x = np.linspace(-np.pi, np.pi, 256) y1, y2 = np.cos(x), np.sin(x)
plt.plot(x, y1, color="blue", linewidth=1.0, linestyle="-") plt.plot(x, y2, color="green", linewidth=1.0, linestyle="--")
plt.xlim(-4, 4) plt.ylim(-1.5, 1.5)
ax = plt.gca() ax.spines['right'].setcolor('none') ax.spines['top'].setcolor('none')
plt.show() ```
在这段代码中,ax = plt.gca()
获取当前坐标轴对象,然后通过 ax.spines['right'].set_color('none')
和 ax.spines['top'].set_color('none')
来隐藏顶部和右侧的脊柱。
运行结果如下图所示:
在上一部分中,我们通过颜色设置隐藏了两个脊柱。接下来,我们将调整其他脊柱的位置:
```python import numpy as np import matplotlib.pyplot as plt
plt.figure(figsize=(5, 5))
x = np.linspace(-np.pi, np.pi, 256) y1, y2 = np.cos(x), np.sin(x)
plt.plot(x, y1, color="blue", linewidth=1.0, linestyle="-") plt.plot(x, y2, color="green", linewidth=1.0, linestyle="--")
plt.xlim(-4, 4) plt.ylim(-1.5, 1.5)
ax = plt.gca() ax.spines['right'].setcolor('none') ax.spines['top'].setcolor('none') ax.spines['bottom'].setposition(('data', 0)) ax.spines['left'].setposition(('data', 0))
plt.show() ```
这里我们使用 set_position(('data', 0))
将底部和左侧的脊柱移动到 x=0 和 y=0 的位置,从而形成常见的坐标轴样式。
运行结果如下图所示:
当图表中有多个线条时,我们可以通过图例来标识每条线的意义。下面的例子展示了如何为两条线添加标签:
```python import numpy as np import matplotlib.pyplot as plt
plt.figure(figsize=(5, 5))
x = np.linspace(-np.pi, np.pi, 256) y1, y2 = np.cos(x), np.sin(x)
plt.plot(x, y1, color="blue", linewidth=1.0, linestyle="-", label="余弦") plt.plot(x, y2, color="green", linewidth=1.0, linestyle="--", label="正弦")
plt.xlim(-4, 4) plt.ylim(-1.5, 1.5)
ax = plt.gca() ax.spines['right'].setcolor('none') ax.spines['top'].setcolor('none') ax.spines['bottom'].setposition(('data', 0)) ax.spines['left'].setposition(('data', 0))
plt.legend(loc='upper left') plt.show() ```
在这个例子中,plt.legend(loc='upper left')
使得图例出现在左上角。
运行结果如下图所示:
更多关于 plt.legend
的用法,请参考 官方文档。