IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Matplotlib définir toutes les options de plot dans une seule commande


Sujet :

Calcul scientifique Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 23
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    ax.set_xticklabels(['un','deux','trois','quatre', 'cinq'], rotation=30, fontsize='small')
    J'ai essayé naïvement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Un truc comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xt_props=( ('un', 'deux', 'trois', 'quatre', 'cinq'), dict(rotation=45))
    ax.set_xticklabels(*xt_props[0], ** xt_props[1])
    devrait fonctionner.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 23
    Par défaut
    Bonjour Wiztricks,
    super merci pour cette piste

    A bientôt et bonne journée à tous,

    D.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/02/2021, 12h55
  2. Réponses: 2
    Dernier message: 01/08/2016, 20h18
  3. Réponses: 2
    Dernier message: 24/06/2014, 08h52
  4. Réponses: 4
    Dernier message: 05/08/2011, 17h19
  5. [Tableaux] Recuper toutes les options dans select
    Par Tempotpo dans le forum Langage
    Réponses: 6
    Dernier message: 13/04/2006, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo