如何在 matplotlib 中更好地栅格化绘图而不模糊标签?
matplotlibpythondata visualization
为了在 matplotlib 中更好地栅格化绘图而不模糊标签,我们可以采取以下步骤。
步骤
设置图形大小并调整子图之间和周围的填充。
创建一个图形和一组子图。
轴 0 - 用 alpha 和 rasterized=False 填充曲线之间的区域。
向轴添加文本。
轴 1 -用 alpha 和 rasterized=True 填充曲线之间的区域。
向轴添加文本。
轴 2 和 3 -分别填充不带 alpha 和 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, 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",因此标签不可见。