Ich muss die Zeit in der X-Achse mit Matplotlib, nicht Panda anzuzeigen. Die Y-Achse sollte die Temperatur anzeigen. Die Daten wurden von einer API generiert und extrahiert, bevor sie in eine multidimensionale Liste platziert wurden. Mein letzter Versuch ist unten. Die Uhrzeit wird nicht genau angezeigt.Warum ist es so schwierig, das richtige Format für Datum und Uhrzeit für Matplotlib zu finden
import matplotlib.pyplot as plt
import numpy as np
import urllib.request
import json
from datetime import datetime, timedelta, time
import matplotlib
def graph_data():
weather_api = 'http://api.openweathermap.org/data/2.5/forecast?q=London&id='
source_code = urllib.request.urlopen(weather_api)
content = source_code.read()
codes = json.loads(content.decode("utf8"))
#get the data required and put it in an array called 'weather_data'
weather_data=[]
for each in codes['list']:
weather_data.append([
each['dt_txt'],
each['weather'][0]['description'],
int(each['main']['humidity']),
float(each['wind']['speed']),
int(each['main']['temp_min']),
int(each['main']['temp_max'])])
#store the weather details for each day
day1 = datetime.now()+timedelta(days=1)
forecast_list = []
for each in weather_data:
date=datetime.strptime(each[0], '%Y-%m-%d %H:%M:%S') #convert string to date
if day1.day == date.day:
d=datetime.strptime(each[0],'%Y-%m-%d %H:%M:%S')
# time=d.strftime('%H:%M:%S')
forecast_list.append([d, each[4]])
time=[]
temp=[]
for each in forecast_list:
time.append(each[0])
temp.append(each[1])
print(time)
plt.plot(time, temp, label = 'Temperature')
plt.gcf().autofmt_xdate()
plt.xlabel('Time')
plt.ylabel('Temperature')
plt.title('Temperature for {0}'.format(day1.strftime('%Y-%d-%d')))
plt.legend()
plt.show()
graph_data()
definieren "nicht korrekt angezeigt". –
zeigt einen Teil des Jahres und eine Zufallszahl – Nosh
Bitte korrigieren Sie die Formatierung des Codes in der Frage: (1) der Einzug ist nicht richtig, (2) gibt es einige Unterschiede in der Eröffnung/Schließung von Anführungszeichen. – mkrieger1