2017-02-22 1 views
0

Voici mon code:terrain et dates zone empilée dans matplotlib

import datetime as dt 
import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 
dates = ['2014-12-15','2015-11-07','2016-01-10'] 
x = [dt.datetime.strptime(d,'%Y-%m-%d').date() for d in dates] 
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y')) 
plt.gca().xaxis.set_major_locator(mdates.DayLocator()) 
plt.stackplot(x,[1,2,3],[7,8,3]) 
plt.gcf().autofmt_xdate() 
plt.show() 

Il produit le tracé suivant:

ugly plot

Comment puis-je corriger pour que seulement 3 dates? J'ai suivi l'exemple suivant: SO example

Répondre

3

Vous avez juste besoin de mettre xticks avec la commande suivante:

plt.xticks(x) 

Il suffit d'ajouter cette ligne avant d'afficher la figure. DayLocator affiche tous les jours par défaut. Dans votre cas, vous avez trop de jours entre les deux pour afficher. Vous pouvez simplement supprimer la ligne 7 qui définit le Daylocator et le remplacer par la ligne ci-dessus qui définit les ticks à vos dates. C'est le résultat: enter image description here