如何在 matplotlib 中更好地栅格化绘图而不模糊标签?

matplotlibpythondata visualization

为了在 matplotlib 中更好地栅格化绘图而不模糊标签,我们可以采取以下步骤。

步骤

  • 设置图形大小并调整子图之间和周围的填充。

  • 创建一个图形和一组子图。

  • 轴 0 - 用 alpharasterized=False 填充曲线之间的区域。

  • 向轴添加文本。

  • 轴 1 -用 alpharasterized=True 填充曲线之间的区域。

  • 向轴添加文本。

  • 轴 2 和 3 -分别填充不带 alpharasterized=TrueFalse 的曲线之间的区域。

  • 向轴添加文本。

  • 要显示图形,请使用 Show() 方法。

示例

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

fig, axis = plt.subplots(nrows=4, sharex=True)

axes[0].fill_between(np.arange(1, 10), 1, 2, zorder=-1, alpha=0.2, rasterized=False)
axes[0].text(5, 1.5, "Label 1", ha='center', va='center', fontsize=25, zorder=-2, rasterized=True)

axes[1].fill_between(np.arange(1, 10), 1, 2, zorder=-1, alpha=0.2, rasterized=True)
axes[1].text(5, 1.5, "Label 2", ha='center', va='center', fontsize=25, zorder=-2, rasterized=True)

axes[2].fill_between(np.arange(1, 10), 1, 2, zorder=-1, rasterized=True)
axes[2].text(5, 1.5, "Label 3", ha='center', va='center', fontsize=25, zorder=-2, rasterized=True)

axes[3].fill_between(np.arange(1, 10), 1, 2, zorder=-1, rasterized=False)
axes[3].text(5, 1.5, "Label 4", ha='center', va='center', fontsize=25, zorder=-2, rasterized=True)

plt.show()

输出

它能够产生以下输出 −

请注意,由于我们没有在轴 2 和轴 3 上使用任何"alpha",因此标签不可见。


相关文章