la valeur minimale de l'axe y n'est pas appliquée dans le graphique matplotlib vlines
Je suis en train de faire un vlines de l'intrigue dans les matplotlib et j'ai tous mes valeurs y dans le jeu de données comme >=0
. Je veux que mon axe y, à bas la plupart des tiques à lire 0
mais au lieu de cela, je reçois -500.
Voici le code:
#!/usr/bin/env python
import numpy as np
from matplotlib import pyplot as plt, dates as mdates
import datetime as dt, time
# Read the data and turn it into a numpy array
#store = map(lambda line: map(int, line.strip().split()), open(name + '.txt').readlines())
store = [
[1293606162197, 0, 0],
[1293605477994, 63, 0],
[1293605478057, 0, 0],
[1293605478072, 2735, 1249],
[1293606162213, 0, 0],
[1293606162229, 0, 0],
]
nstore = np.array(store)
# Get arrays of each columns in the store array
d = nstore[:,0]
y1 = nstore[:,1]
y2 = nstore[:,2]
# Get arrays of values to be passed to matplotlib
s = d / 1000
dts = map(dt.datetime.fromtimestamp, s)
fds = mdates.date2num(dts)
# new figure and subplot
fig = plt.figure()
ax = fig.add_subplot(111)
# Plot using vlines
ax.vlines(fds, [0], y1, 'red')
# set xaxis tick settings
ax.xaxis.set_major_locator(mdates.MinuteLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%m/%d %H:%M'))
for label in ax.xaxis.get_ticklabels():
label.set_rotation('vertical')
fig.subplots_adjust(bottom=.25)
# Set the y axis bottom limit to 0
ax.set_ylim(bottom=0) # <<- THIS DOES NOT SEEM TO BE WORKING
# Save the plot figure
fig.savefig('out.png')
et voici l'intrigue, j'obtiens:
Quelqu'un peut-il point pour moi ce que je fais de mal? Aussi, si vous pouvez m'indiquer les docs qui ont les détails dont j'ai besoin, ce serait génial. Merci.
Question est un suivi de De la création graphique avec affichage de la date et de l'heure dans les étiquettes de l'axe avec matplotlib
source d'informationauteur Shrikant Sharat
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir la limite manuellement après la représentation des donnéescomme suit:
Ce qui se passe est que Matplotlib ajuste le tracé des limites de sorte qu'elle semble "mieux". Parfois, cela implique d'aller au-delà de la stricte gamme de vos données. Vous devez ensuite mettre à jour les limites après l'intrigue, puisque chaque parcelle de mises à jour de la limite (si j'ai bien compris).
Maintenant, votre approche peut fonctionner, mais vous devez mettre à jour la figure après le réglage de la limite:
(Cela fonctionne dans le IPython shell sur Mac OS X avec la dernière version de matplotlib.)