如何自定义 Matplotlib 图形的脊线?


当我们在 Matplotlib 中绘制一个图形时,它会在图形周围创建四条主线:顶部、左边、底部和右边。主线无非是一个由网格的图形表示包围的框,它在左侧(y)和底部(x)显示一些刻度和可刻度的轴。

让我们看看如何自定义给定图形中的主线。我们将创建六个图形来查看和自定义它们的主线。

首先为工作簿导入所需的库。

import numpy as np
import matplotlib.pyplot as plt

让我们绘制正弦波图:

theta = np.linspace(0, 2*np.pi, 128)
y = np.sin(theta)
fig = plt.figure(figsize=(8,6))

用默认主线定义坐标轴:

ax1 = fig.add_subplot(2, 3, 1)
ax1.plot(theta, np.sin(theta), 'b-*')
ax1.set_title('default spines')

定义用于绘制图形的函数:

def plot_graph(axs, title, lposition, bposition):
   ax = fig.add_subplot(axs)
   ax.plot(theta, y, 'b-*')
   ax.set_title(title)
   ax.spines['left'].set_position(lposition)
   ax.spines['right'].set_visible(False)
   ax.spines['bottom'].set_position(bposition)
   ax.spines['top'].set_visible(False)
   ax.xaxis.set_ticks_position('bottom')
   ax.yaxis.set_ticks_position('left')

让我们绘制 3 个图形。

plot_graph(232, 'centered spines', 'center', 'center')
plot_graph(233, 'zeroed spines', 'zero', 'zero')
plot_graph(234, 'spines at axes [0.25, 0.75]', ('axes', 0.25),('axes', 0.75))
plot_graph(235, 'spines at data [1.0, -1.0]', ('data', 1.0),('data', -1.0))
plot_graph(236, 'adjusted spines', ('outward', 10), ('outward', 10))

让我们将图形装配到网格中并显示。

plt.tight_layout()
plt.show()

输出

更新于: 2021 年 2 月 23 日

842 次浏览

启动您的 职业生涯

完成本课程并获得认证

开始学习
广告