Partage
  • Partager sur Facebook
  • Partager sur Twitter

Plot d'une courbe

Axe des abscisses

Sujet résolu
    26 juillet 2021 à 12:35:57

    Bonjour,

    Je vous écris ce message afin de vous poser une question concernant un message qui s'affiche lorsque je compile mon code me permettant de tracer une courbe.

    Ainsi, étant débutant en Python, je vous mets mon code.

    Voici ci-dessous on code :

    #############################################################################################################################
    #Courbe du g(2)
    #############################################################################################################################
    #Importation de données d'un fichier CSV
    
    #Importation du module numpy afin de lire le contenu du fichier csv et simplification en np
    import numpy as np
    
    #Importation du module matplotlib.pyplot pour construire le graphique et simplification en plt
    import matplotlib.pyplot as plt
    
    #Recherche des coordonnéees des points dans le fichier csv
    #Les données sont séparées par des " " à  partir de la 1 ère ligne (notée 0)
    pointage = np.loadtxt("em9_g2_norm.csv",delimiter=' ',skiprows=0)
    
    #Lecture des abscisses x issues de la deuxième colonne (notée 1) du fichier csv
    #Les données se retrouveront dans un tableau d'une ligne
    x1=pointage[:,1]
    
    #Lecture des ordonnées y issues de la troisième colonne (notée 2) du fichier csv
    #Les données se retrouveront dans un tableau d'une ligne
    y1=pointage[:,2]
    y2=[] # Création d'une liste vide
    for i in range(len(x1)): # Définition de la taille de la liste vide
        y2.append(0.5) # Ajout du nombre constant 0.5 sur toute la liste
    
    print(type(y1))
    print("Abscisses x en ($\mu s$) :",x1)
    print("Ordonnées y (en A.U.) :",y1)
    
    #Soustraction des xi par x : valeur associé à la valeur max du g(2) dans y1
    x2=np.array([t-0.33e-6 for t in x1])
    
    #Affiche un repère prédéfini
    plt.axis([-3e-6,3e-6,0.0,1.3]) # A commenter pour voir la courbe initiale du g(2) sans zoom
    
    #plt.title("Emitter 1 $g^{(2)}(τ)$ emission spectrum")  # Affiche le titre
    plt.gca().xaxis.set_ticklabels([-3, -2, -1, 0, 1, 2, 3]) # Redéfini les ticklabels de l'axe x
    plt.xlabel('Time ($\mu s$)')           # Affiche la légende sur l'axe des abscisses
    plt.ylabel('$g^{(2)}(τ)$')         # Affiche la légende sur l'axe des ordonnées
    plt.plot(x2,y1,"b-")               # Trace une liaison entre les points en bleu
    plt.plot(x2,y2,"r--")               # Trace une liaison entre les points en rouge
    plt.text(-3e-6, 0.5, '0.5', color='r', horizontalalignment = 'right', verticalalignment = 'center_baseline') # Ajout de texte
    plt.text(0, 0.18, '0.18', color='g', horizontalalignment = 'center', verticalalignment = 'center')
    plt.show()                        # Montre le graphique à l'écran

    Ainsi, tout le code fonctionne et l'on m'affiche bien les résultats voulus. Mais le problème est l'affichage du message suivant que je ne comprends pas : <ipython-input-17-55a68ebee8bd>:38: UserWarning: FixedFormatter should only be used together with FixedLocator plt.gca().xaxis.set_ticklabels([-3, -2, -1, 0, 1, 2, 3]) # Redéfini les ticklabels de l'axe x.

    Pour finir, pourriez-vous me dire ce que je dois entreprendre sur mon code afin de résoudre ce problème, s'il vous plaît.



    Répondez-moi quand vous aurez du temps libre.

    Je vous en serai très reconnaissant.


    Merci de votre compréhension.

    • Partager sur Facebook
    • Partager sur Twitter
      26 juillet 2021 à 19:17:09

      c'est un warning et non une erreur, ça ne devrait pas empêcher le bon déroulant du programme.

      sinon remplacer la ligne 38 par plt.set_xticklabels([..]) (peut-être précédé d'un plt.set_xticks([...])

      https://stackoverflow.com/questions/63723514/userwarning-fixedformatter-should-only-be-used-together-with-fixedlocator 

      • Partager sur Facebook
      • Partager sur Twitter

      Plot d'une courbe

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown