Python: centrer les axes

Bonjour,
l'une ou l'un d'entre vous sait-il centrer ses axes dans matplotlib.pyplot ?

J'ai créé une petite routine qui permet de visualiser "des" axes mais elle n'est pas très efficace, je ne trouve pas la solution sur le web :-(
Merci d'avance,
F.D.
def trace_axes(xmin,xmax,ymin,ymax,N):
    x=np.linspace(xmin,xmax,N)
    abscisses=0*x
    plt.plot(x,abscisses,'k')
    y=np.linspace(ymin,ymax,N)
    ordonnees=0*y
    plt.plot(ordonnees,y,'k')
    #axes_grad()

Réponses

  • Bonjour,
    une réponse partielle à mon problème:
    def centre_axes():
        ax = plt.gca()
        ax.spines['right'].set_color('none')
        ax.spines['top'].set_color('none')
        ax.xaxis.set_ticks_position('bottom')
        ax.spines['bottom'].set_position(('data',0))
        ax.yaxis.set_ticks_position('left')
        ax.spines['left'].set_position(('data',0))
    
    def trace_fct(f,a,b,f_min_f_max,x_min,x_max,N):
        f_min,x_min=kangourou_min_abs(a,b,f,N)
        f_max,x_max=kangourou_max_abs(a,b,f,N)
        centre_axes()
        x=np.linspace(a,b,N)
        y=np.linspace(a,b,N)
        for i in range(N):
            y[ i]=f(x[ i])
        plt.plot(x,y,'r')
        plt.ylim((1.2*f_min,1.2*f_max))
    
        plt.show()
    
    Merci d'avance pour d'éventuels conseils ou compléments,

    F.D.
  • Bonsoir FrançoisD,

    il y a une solution sur cette page.
  • Bonjour,

    Voici un exemple de code "sans routine" dans lequel les axes sont centrés :
    import math
    import numpy as np
    import matplotlib.pyplot as plt
    
    def sigmoid(x):
        a = []
        for item in x:
            a.append(1/(1+math.exp(-item)))
        return a
    
    
    x = np.arange(-10., 10., 0.2)
    sig = sigmoid(x)
    
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)
    
    # Move left y-axis and bottim x-axis to centre, passing through (0,0)
    ax.spines['left'].set_position('center')
    ax.spines['bottom'].set_position('center')
    
    # Eliminate upper and right axes
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    
    # Show ticks in the left and lower axes only
    ax.xaxis.set_ticks_position('bottom')
    ax.yaxis.set_ticks_position('left')
    
    plt.plot(x,sig)
    plt.show()
    
    


    VzA6k.png

    Est-ce cela que tu souhaites ?

    Playlist Youtube de Misterned :
    Exercices Python
  • Merci c'est très joli

    F.D.
  • Bonjour,
    en faisant joujou avec les Tables de Laver, je me suis rendu compte que je n'arrivais pas à avoir un bel affichage des tableaux (8x8 passe encore mais 16x16 ou plus ça fait sale) [Sale / Laver ? désolé].

    Est-il possible d'avoir un affichage "propre" même s'il faut aller chercher des routines graphiques, je ne vois aucune solution dans l'immédiat ?

    Question subsidiaire: est-ce qu'un utilisateur d'EduPython saurait me dire ce que signifie l'onglet Sortie en bas ?
    Merci d'avance,
    Bien amicalement,
    F.D.

    [Restons dans la discussion que tu as ouverte pour tes questions python. :-) AD]
  • (Merci A.D.)
Connectez-vous ou Inscrivez-vous pour répondre.