programing

matplotlib에서 두 수직선 사이에 채우기

yellowcard 2023. 7. 19. 21:16
반응형

matplotlib에서 두 수직선 사이에 채우기

저는 의 예들을 살펴보았습니다.matplotlib문서화, 하지만 두 개의 특정 수직선 사이의 영역을 채우는 플롯을 어떻게 만들 수 있는지는 명확하지 않았습니다.

예를 들어, 다음 사이에 그림을 만들고 싶다고 가정합니다.x=0.2그리고.x=4(전체용)y그림의 범위).사용할까요?fill_between,fill또는fill_betweenx?

사용할 수 있습니까?where이것을 위한 조건?

함수 사이의 채우기 중 하나가 아니라 원하는 것처럼 들립니다.차이점은axvspan(및 )은 확대/축소 방법에 관계없이 플롯의 전체 y(또는 x) 범위를 채웁니다.

예를 들어 다음을 사용합니다.axvspan8과 14 사이의 x 영역을 강조 표시합니다.

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot(range(20))
ax.axvspan(8, 14, alpha=0.5, color='red')

plt.show()

enter image description here

사용할 수 있습니다.fill_betweenx이렇게 하려면 사각형의 익스텐트(x 및 y 모두)가 데이터 좌표에 있어야 합니다.와 함께axvspan사각형의 y-범위는 기본값으로 0과 1이며 축 좌표(즉, 그림 높이의 백분율)입니다.

이를 설명하기 위해 직사각형을 전체 범위를 차지하는 대신 높이의 10%에서 90%로 확장합니다.확대/축소 또는 상하좌우 이동을 시도하면 y-범위는 디스플레이 공간에 고정되어 있고 x-범위는 확대/축소/이동과 함께 이동합니다.

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot(range(20))
ax.axvspan(8, 14, ymin=0.1, ymax=0.9, alpha=0.5, color='red')

plt.show()

enter image description here

언급URL : https://stackoverflow.com/questions/23248435/fill-between-two-vertical-lines-in-matplotlib

반응형