Python/Python For Analytics

[ Python ] matplotlib plot Shading Area (특정구간 강조)

Pydole 2023. 2. 3. 18:06

 

그래프를 추출할 때, 쉐딩(강조)을 적용하기. 엔지니어의 보고서에 그래프 넣기

 

 

 

기본 x, y 막대 그래프 

 

x = [ x + 1 for x in range(30) ]
y = [ randint(1,5) for x in range(30) ]

 

 

 

단일 구간 강조

 

import matplotlib.pyplot as plt
from random import randint

a = 3
b = 8

plt.axvspan(a, b, color='blue', alpha=0.1)

plt.plot(x, y)
plt.show()

 

 

 

 

여러구간 강조 하기 (구간 지정)

 

import matplotlib.pyplot as plt
from random import randint


z = {3:4,15:20,25:29}   # 구간 Dictionary

for a, b in z.items():   
    plt.axvspan(a, b, color='gray', alpha=0.1)

plt.plot(x, y)
plt.show()

 

 

 

 

 

값이 5일 때만 강조구간 넣기 ( 조건 강조 )

 

import matplotlib.pyplot as plt
from random import randint

z = {}

for c, d in enumerate(y):
    if d == 5:
        z[c+0.5] = c+1.5     # 강조구간 조정
    
for a, b in z.items():   
    plt.axvspan(a, b, color='gold', alpha=0.1)

plt.plot(x, y)
plt.show()

 

 

 

 

 

Document : https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.axvspan.html

 

matplotlib.pyplot.axvspan — Matplotlib 3.7.1 documentation

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

matplotlib.org