如何在 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 次檢視

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.