Bienvenue sur IndexError.

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

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-2019 par Marwa Doghmane
edité 12-Aou-2019 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-2019 par Ch.
edité 12-Aou-2019 par max
...