Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

comment je règle la graduation des échelles d'une courbe en python

+1 vote

Je suis vraiment bloqué .J'ai tracé 3 courbes dans la même figure en utilisant Pycharm mais l’échelle des graduations pour l'axe des y est vraiment catastrophique . En fait pour l'un des courbes les valeurs sont très petites alors que pour l’autre courbe les valeurs sont très grandes de tel façon que la courbe dont les valeurs sont très petites est presque n'est pas affiché .Prière de m'aider s'il vous plait C'est le code que j'ai déja fait :

import numpy as np
c1,c2,c3=np.array([0,400],dtype=float),np.array([300,12500],dtype=float),np.array([20,45],dtype=float)
mb1,mb2,mb3=np.array([0,18],dtype=float),np.array([0,12.2],dtype=float),np.array([0,1.4],dtype=float)
import matplotlib.pyplot as plt
plt.plot(mb1,c1,'s-',markerfacecolor='white',label="Process 1 ")
plt.plot(mb2,c2,'s-',markerfacecolor='white',label="Process 2 ")
plt.plot(mb3,c3,'s-',markerfacecolor='white',label="Process 3")
plt.yticks(c1, c1, color='k')
plt.xticks(mb1, mb1, color='k')
#ajouter les limites des axes
plt.xlim(0.4,20)
plt.ylim(20,12500)
plt.grid()
plt.legend()
plt.show()
plt.savefig('image.png')
demandé 7-Aou par Marwa Doghmane
edité 12-Aou par max

2 Réponses

0 votes

Je proposerais de séparer les graphes, pour qu'ils aient chacun leur échelle.
Avec 2 axes, voilà le code :

import numpy as np
import matplotlib.pyplot as plt

c1,c2,c3=np.array([0,400],dtype=float),np.array([300,12500],dtype=float),np.array([20,45],dtype=float)
mb1,mb2,mb3=np.array([0,18],dtype=float),np.array([0,12.2],dtype=float),np.array([0,1.4],dtype=float)

# couleurs pour différencier les variables et les échelles
color1= 'red'
color2='blue'
color3='green'

fig = plt.figure()
ax1 = fig.add_subplot(111)

# le premier 'ax' contiendra les variables Process 1 et Process 3
g1, = ax1.plot(mb1,c1,'s-',markerfacecolor='white',label="Process 1 ",color=color1)

plt.xticks(mb1, mb1, color='k')
plt.yticks(color=color1)
ax1.set_ylabel("Process 1 et 3", color=color1)

ax1.plot(mb3,c3,'s-',markerfacecolor='white',label="Process 3",color=color3)

# ax2 partage le même axe des abscisses que ax1, mais aura sa propre échelle d'ordonnées
ax2=plt.twinx()
ax2.plot(mb2,c2,'s-',markerfacecolor='white',label="Process 2 ",color=color2)
ax2.set_ylabel("Process 2", color=color2)
plt.yticks(color=color2)

fig.legend(loc="upper right")  # pour rassembler toutes les légendes en une seule

plt.show()
répondu 12-Aou par Ch.
edité 12-Aou par max
0 votes
répondu 12-Aou par Maxime
...