Matplotlib définir toutes les options de plot dans une seule commande
Bonjour à tous,
j'apprends (entre autres) à utiliser Matplotlib via le livre "Python for Data Analysis".
A un moment du livre, il est indiqué qu'on peut définir une grande partie des options de tracé d'un plot via un dictionnaire.
Par exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import numpy as np
from matplotlib import pyplot as plt
data = np.random.randn(100).cumsum()
props={
'title':'My awesome plot',
'xlabel':'Random walk number',
'ylabel':'Total walk',
'XTicks':[0,25,50,75,100]}
'XTicklabels':['un', 'deux', 'trois', 'quatre', 'cinq']}
hfig, ax = plt.subplots()
plt.plot(data, 'k--')
ax.set(**props) |
C'est super car tout est défini dans le dictionnaire props.
Néanmoins, je bloque pour ajouter l'option "rotation=45' dans XTickslabels
Quelque chose qui se fait naturellement par :
Code:
ax.set_xticklabels(['un','deux','trois','quatre', 'cinq'], rotation=30, fontsize='small')
J'ai essayé naïvement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| xt_props={
'labels':['un', 'deux', 'trois', 'quatre', 'cinq'],
'rotation':45}
props={
'title':'My awesome plot',
'xlabel':'Random walk number',
'ylabel':'Total walk',
'XTicks':[0,25,50,75,100]}
'XTicklabels':xt_props}
ax.set(**props) |
Ca m'a répondu :
ValueError: The number of FixedLocator locations (5), usually from a call to set_ticks, does not match the number of ticklabels (2).
Alors j'y arrive bien en deux passes :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| xt_props={
'labels':['un', 'deux', 'trois', 'quatre', 'cinq'],
'rotation':45}
props={
'title':'My awesome plot',
'xlabel':'Random walk number',
'ylabel':'Total walk',
'XTicks':[0,25,50,75,100]}
ax.set(**props)
ax.set_xticklabels(**xt_props) |
Mais je me demandais si quelqu'un de plus expérimenté que moi y arriverait en une seule passe ?
Merci par avance :)
Donut