J'ai démarré mon ordinateur portable IPython avec
ipython notebook --pylab inline
Ceci est mon code dans une cellule
df['korisnika'].plot()
df['osiguranika'].plot()
Cela fonctionne bien, il va tracer deux lignes, mais sur le même graphique.
Je voudrais dessiner chaque ligne sur un graphique séparé. Et ce serait bien si les cartes étaient côte à côte, pas les unes après les autres.
Je sais que je peux mettre la deuxième ligne dans la cellule suivante, puis j'obtiendrais deux graphiques. Mais j'aimerais que les graphiques soient proches les uns des autres, car ils représentent la même unité logique.
Créez d'abord les multiples axes et transmettez-les à la fonction de tracé Pandas), comme:
fig, axs = plt.subplots(1,2)
df['korisnika'].plot(ax=axs[0])
df['osiguranika'].plot(ax=axs[1])
Il vous donne toujours 1 chiffre, mais avec deux parcelles différentes l'une à côté de l'autre.
Vous pouvez également appeler la fonction show () après chaque tracé. par exemple
plt.plot(a)
plt.show()
plt.plot(b)
plt.show()
Une autre façon, pour la variété. Bien que ce soit un peu moins flexible que les autres. Malheureusement, les graphiques apparaissent les uns au dessus des autres, plutôt que côte à côte, ce que vous aviez demandé dans votre question initiale. Mais c'est très concis.
df.plot(subplots=True)
Si le cadre de données comporte plus de deux séries et que vous souhaitez uniquement les représenter, vous devrez remplacer df
par df[['korisnika','osiguranika']]
.
Quelque chose comme ça:
import matplotlib.pyplot as plt
... code for plot 1 ...
plt.show()
... code for plot 2...
plt.show()
Notez que cela fonctionnera également si vous utilisez le package seaborn
pour le traçage:
import matplotlib.pyplot as plt
import seaborn as sns
sns.barplot(... code for plot 1 ...) # plot 1
plt.show()
sns.barplot(... code for plot 2 ...) # plot 2
plt.show()
Je ne sais pas s'il s'agit d'une nouvelle fonctionnalité, mais cela va se tracer sur des figures distinctes:
df.plot(y='korisnika')
df.plot(y='osiguranika')
alors que cela va tracer sur le même chiffre: (juste comme le code dans l'op)
df.plot(y=['korisnika','osiguranika'])
J'ai trouvé cette question parce que j'utilisais l'ancienne méthode et que je voulais qu'ils s'inspirent du même chiffre. Votre question était donc ma réponse.