Je fais une visualisation des données de stock historiques pour un projet, et je voudrais mettre en évidence les régions de gouttes. Par exemple, lorsque le titre connaît une baisse importante, je voudrais le mettre en évidence avec une zone rouge.
Puis-je le faire automatiquement ou dois-je dessiner un rectangle ou quelque chose?
Jetez un oeil à axvspan
(et axhspan pour mettre en évidence une région de l'axe des y).
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.axvspan(3, 6, color='red', alpha=0.5)
plt.show()
Si vous utilisez des dates, vous devrez convertir vos valeurs min et max x en dates matplotlib. Utilisation matplotlib.dates.date2num
pour datetime
objets ou matplotlib.dates.datestr2num
pour différents horodatages de chaîne.
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime as dt
t = mdates.drange(dt.datetime(2011, 10, 15), dt.datetime(2011, 11, 27),
dt.timedelta(hours=2))
y = np.sin(t)
fig, ax = plt.subplots()
ax.plot_date(t, y, 'b-')
ax.axvspan(*mdates.datestr2num(['10/27/2011', '11/2/2011']), color='red', alpha=0.5)
fig.autofmt_xdate()
plt.show()