J'essaie de définir les limites x et y sur un sous-tracé, mais j'ai du mal. Je soupçonne que la difficulté vient de mon manque fondamental de compréhension du fonctionnement des chiffres et des sous-intrigues. J'ai lu ces deux questions:

question 1

question 2

J'ai essayé d'utiliser cette approche, mais aucun n'a eu d'effet sur les limites x et y. Voici mon code:

fig = plt.figure(figsize=(9,6))
ax = plt.subplot(111)
ax.hist(sub_dict['b'], bins=30, color='r', alpha=0.3)
ax.set_ylim=([0,200])
ax.set_xlim=([0,100])
plt.xlabel('x')
plt.ylabel('y')
plt.title('title')
plt.show()

Je suis confus quant à savoir si appliquer des commandes à fig ou ax? Par exemple .xlabel et .title ne semblent pas être disponibles pour ax. Merci

0
TaxpayersMoney 7 mars 2016 à 15:24

3 réponses

Meilleure réponse

Un peu plus sur Google et j'ai obtenu ce qui a fonctionné:

sub_dict = subset(data_dict, 'b', 'a', greater_than, 10)
fig = plt.figure(figsize=(9,6))
ax = fig.add_subplot(111)
ax.hist(sub_dict['b'], bins=30, color='r', alpha=0.3)
plt.ylim(0,250)
plt.xlim(0,100)
plt.xlabel('x')
plt.ylabel('y')
plt.title('title')
plt.show()
0
TaxpayersMoney 7 mars 2016 à 13:04

Pour un multiplot, où vous avez des sous-parcelles dans une seule figure, vous pouvez avoir plusieurs xlabel et un title

fig.title("foobar")
ax.set_xlabel("x")

Ceci est expliqué en détail here sur le site Web de Matplotlib.

Dans votre cas, utilisez un sous-tracé pour un seul tracé. C'est possible, cela n'a pas beaucoup de sens. Les tracés comme celui ci-dessous sont censés être créés avec la fonction de sous-tracé:

enter image description here

Pour répondre à votre question: vous pouvez définir les limites x et y par sous-tracé et par axe en adressant simplement directement le sous-tracé respectif (ax pour le sous-tracé 1) et en les appelant le {{X1} } fonction membre pour définir l'étiquette sur l'axe des x.

MODIFIER

Pour votre question mise à jour:

Utilisez ce code comme source d'inspiration, j'ai dû générer moi-même des données donc aucune garantie:

import matplotlib.pyplot as plt

plt.hist(sub_dict['b'], bins=30, color='r', alpha=0.3)
plt.ylim(0,200)
plt.xlim(0,100)
plt.xlabel('x')
plt.ylabel('y')
plt.title('title')
plt.show()
0
jhoepken 7 mars 2016 à 13:00

Pourquoi ne faites-vous pas: Axe = fig.add_subplot (111)

import matplotlib.pyplot as plt
import numpy as np
mu, sigma = 100, 15
x = mu + sigma*np.random.randn(100)

fig = plt.figure(figsize=(9,6))
ax = fig.add_subplot(111)
ax.hist(x, bins=30, color='r', alpha=0.3)
ax.set_ylim=(0, 200)
ax.set_xlim=(0, 100)
plt.xlabel('x')
plt.ylabel('y')
plt.title('title')
plt.show()

J'ai exécuté votre code sur un exemple de code et je joins la capture d'écran. Je ne suis pas sûr que ce soit le résultat souhaité, mais c'est ce que j'ai obtenu.  entrez la description de l'image ici

0
fredstban 7 mars 2016 à 12:58