Python进阶之Matplotlib入门(四)
作者头像
  • 曹小菲
  • 2020-03-03 18:06:55 11

引言

Matplotlib 是 Python 中最常用的绘图库之一,它能够帮助用户轻松地将数据可视化,并能绘制出高质量的图表。学习 Matplotlib 对于使用 Python 进行数据可视化来说是必不可少的。建议大家亲自编写代码,以便更好地理解和掌握相关知识。

接下来的内容包括:

概要

  1. 学习如何使用 spine 函数来控制坐标轴的位置和样式。
  2. 掌握 legend 函数,为不同线条添加标签,便于区分。

图的脊柱 spines

在 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 的用法,请参考 官方文档

    本文来源:图灵汇
责任编辑: : 曹小菲
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
进阶Matplotlib入门Python
    下一篇