如何自定义 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()
输出
广告