Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

matplotlib에서 레이블을 흐리게 하지 않고 플롯을 더 잘 래스터화하는 방법은 무엇입니까?

<시간/>

matplotlib에서 레이블을 흐리게 하지 않고 더 나은 방식으로 플롯을 래스터화하려면 다음 단계를 수행할 수 있습니다.

단계

  • Figure 크기를 설정하고 서브플롯 사이와 주변의 패딩을 조정합니다.

  • Figure와 서브플롯 세트를 생성합니다.

  • 축 0 - 곡선 사이의 영역을 알파로 채웁니다. 및 rasterized=False .

  • 축에 텍스트를 추가합니다.

  • 축 1 - 곡선 사이의 영역을 알파로 채웁니다. 및 rasterized=True .

  • 축에 텍스트를 추가합니다.

  • 축 2와 3 – 알파 없이 곡선 사이의 영역 채우기 및 rasterized=True거짓 , 각각.

  • 축에 텍스트를 추가합니다.

  • 그림을 표시하려면 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()

출력

다음 출력을 생성합니다 -

matplotlib에서 레이블을 흐리게 하지 않고 플롯을 더 잘 래스터화하는 방법은 무엇입니까?

축 2와 3에 "알파"를 사용하지 않았기 때문에 레이블이 표시되지 않습니다.