如何在 matplotlib 中更好地光栅化绘图,同时避免标签模糊?


为了更好地光栅化绘图并避免 matplotlib 中的标签模糊,我们可以采取以下步骤。

步骤

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

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

  • 坐标轴 0 – 使用 **alpha** 和 **rasterized=False** 填充曲线之间的区域。

  • 向坐标轴添加文本。

  • 坐标轴 1 – 使用 **alpha** 和 **rasterized=True** 填充曲线之间的区域。

  • 向坐标轴添加文本。

  • 坐标轴 2 和 3 – 分别使用 **alpha=False** 和 **rasterized=True** 和 **False** 填充曲线之间的区域。

  • 向坐标轴添加文本。

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

示例

import matplotlib.pyplot as plt
import numpy as np

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

fig, axes = 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”,因此标签不可见。

更新于:2021年10月19日

500 次查看

启动您的 职业生涯

完成课程获得认证

开始学习
广告