싸이클러로 스타일링하기 #

여러 줄 플롯의 색상 및 기타 스타일 속성을 제어하기 위한 사용자 지정 속성 주기 설정의 데모입니다.

메모

cyclerAPI 에 대한 보다 완전한 문서는 여기 에서 찾을 수 있습니다 .

이 예는 두 가지 다른 API를 보여줍니다.

  1. 기본 속성 주기를 지정하는 rc 매개변수 설정. 이것은 모든 후속 축에 영향을 미칩니다(단, 이미 생성된 축은 제외).

  2. 한 쌍의 축에 대한 속성 주기 설정.

from cycler import cycler
import numpy as np
import matplotlib.pyplot as plt

먼저 몇 가지 샘플 데이터(이 경우에는 4개의 오프셋 사인 곡선)를 생성합니다.

x = np.linspace(0, 2 * np.pi, 50)
offsets = np.linspace(0, 2 * np.pi, 4, endpoint=False)
yy = np.transpose([np.sin(x + phi) for phi in offsets])

이제 yy모양이 생겼습니다

print(yy.shape)
(50, 4)

따라서 -번째 오프셋 사인 곡선 을 제공합니다 . 를 사용 하여 기본값을 설정해 보겠습니다 . ( ) 두 개 를 함께 추가하여 색상 순환기와 선 스타일 순환기를 결합합니다. 서로 다른 사이클러를 결합하는 방법에 대한 자세한 내용은 이 튜토리얼의 하단을 참조하십시오.yy[:, i]iprop_cyclematplotlib.pyplot.rc()+cycler

default_cycler = (cycler(color=['r', 'g', 'b', 'y']) +
                  cycler(linestyle=['-', '--', ':', '-.']))

plt.rc('lines', linewidth=4)
plt.rc('axes', prop_cycle=default_cycler)

이제 두 개의 축이 있는 도형을 생성합니다. 하나는 다른 하나 위에 있습니다. 첫 번째 축에서 기본 사이클러로 플로팅합니다. 두 번째 축에서 이 인스턴스 에 대해서만 설정 하는 prop_cycleusing 을 설정합니다. 우리는 컬러 사이클러와 선폭 사이클러를 결합한 초를 사용할 것입니다.matplotlib.axes.Axes.set_prop_cycle()prop_cyclematplotlib.axes.Axescycler

custom_cycler = (cycler(color=['c', 'm', 'y', 'k']) +
                 cycler(lw=[1, 2, 3, 4]))

fig, (ax0, ax1) = plt.subplots(nrows=2)
ax0.plot(yy)
ax0.set_title('Set default color cycle to rgby')
ax1.set_prop_cycle(custom_cycler)
ax1.plot(yy)
ax1.set_title('Set axes color cycle to cmyk')

# Add a bit more space between the two plots.
fig.subplots_adjust(hspace=0.3)
plt.show()
기본 색상 주기를 rgby로 설정, 축 색상 주기를 cmyk로 설정

파일 또는 스타일 파일 prop_cycle에서 설정 #matplotlibrc

커스텀 사이클러는 다음 아래의 matplotlibrc 파일 또는 스타일 파일( style.mplstyle)에서 설정할 수 있습니다 axes.prop_cycle.

axes.prop_cycle : cycler(color='bgrcmyk')

여러 속성을 통한 순환 #

사이클러를 추가할 수 있습니다.

from cycler import cycler
cc = (cycler(color=list('rgb')) +
      cycler(linestyle=['-', '--', '-.']))
for d in cc:
    print(d)

결과:

{'color': 'r', 'linestyle': '-'}
{'color': 'g', 'linestyle': '--'}
{'color': 'b', 'linestyle': '-.'}

사이클러를 곱할 수 있습니다.

from cycler import cycler
cc = (cycler(color=list('rgb')) *
      cycler(linestyle=['-', '--', '-.']))
for d in cc:
    print(d)

결과:

{'color': 'r', 'linestyle': '-'}
{'color': 'r', 'linestyle': '--'}
{'color': 'r', 'linestyle': '-.'}
{'color': 'g', 'linestyle': '-'}
{'color': 'g', 'linestyle': '--'}
{'color': 'g', 'linestyle': '-.'}
{'color': 'b', 'linestyle': '-'}
{'color': 'b', 'linestyle': '--'}
{'color': 'b', 'linestyle': '-.'}

Sphinx-Gallery에서 생성한 갤러리