메모
전체 예제 코드를 다운로드 하려면 여기 를 클릭 하십시오.
Markevery 데모 #
의 markevery
속성을 Line2D
사용하면 데이터 포인트의 하위 집합에서 마커를 그릴 수 있습니다.
가능한 매개변수 목록은 에 지정되어 Line2D.set_markevery
있습니다. 요컨대:
단일 정수 N은 모든 N번째 마커를 그립니다.
정수 튜플(start, N)은 데이터 인덱스 start 에서 시작하여 모든 N번째 마커를 그립니다 .
정수 목록은 지정된 인덱스에 마커를 그립니다.
슬라이스는 슬라이스된 인덱스에 마커를 그립니다.
부동 소수점은 마커 사이의 거리를 화면 공간에서 Axes 대각선의 일부로 지정합니다. 이렇게 하면 축척 및 확대/축소에 관계없이 선을 따라 점을 시각적으로 균일하게 분포할 수 있습니다.
선형 스케일이 있는 markevery #
로그 스케일이 있는 markevery #
로그 스케일은 정수를 사용하여 데이터를 서브샘플링할 때 마커 거리에서 시각적 비대칭을 유발합니다. 반대로 그림 크기의 일부에 대한 서브샘플링은 데이터 좌표나 데이터 인덱스가 아니라 축 대각선의 일부를 기반으로 하기 때문에 고른 분포를 생성합니다.
fig, axs = plt.subplots(3, 3, figsize=(10, 6), constrained_layout=True)
for ax, markevery in zip(axs.flat, cases):
ax.set_title(f'markevery={markevery}')
ax.set_xscale('log')
ax.set_yscale('log')
ax.plot(x, y, 'o', ls='-', ms=4, markevery=markevery)
확대된 플롯의 markevery #
정수 기반 markevery 사양은 기본 데이터에서 포인트를 선택하고 보기에 독립적입니다. 대조적으로 float 기반 사양은 Axes 대각선과 관련이 있습니다. 확대/축소는 축 대각선을 변경하지 않지만 표시된 데이터 범위를 변경하고 확대/축소 시 더 많은 포인트가 표시됩니다.
fig, axs = plt.subplots(3, 3, figsize=(10, 6), constrained_layout=True)
for ax, markevery in zip(axs.flat, cases):
ax.set_title(f'markevery={markevery}')
ax.plot(x, y, 'o', ls='-', ms=4, markevery=markevery)
ax.set_xlim((6, 6.7))
ax.set_ylim((1.1, 1.7))
극좌표의 markevery #
r = np.linspace(0, 3.0, 200)
theta = 2 * np.pi * r
fig, axs = plt.subplots(3, 3, figsize=(10, 6), constrained_layout=True,
subplot_kw={'projection': 'polar'})
for ax, markevery in zip(axs.flat, cases):
ax.set_title(f'markevery={markevery}')
ax.plot(theta, r, 'o', ls='-', ms=4, markevery=markevery)
plt.show()
스크립트의 총 실행 시간: ( 0분 10.927초)