Я абсолютный начинающий python, который хочет/должен программировать скрипт веб-граббера для извлечения данных с веб-страницы прогноза погоды, чтобы построить его ,Python plot for beginners - ValueError: x и y должны иметь одно и то же первое измерение (код внутри)
я сделал raw_input так, чтобы люди могли выбрать город, из которого они хотят видеть детали погоды нарисованы, вот соответствующая для сюжета:
import os
import matplotlib.pyplot as plt
from datetime import datetime
path = "data\\"
names = os.listdir(path)
namelist=[]
for element in names:
element = element[:-4]
namelist.append(element)
print namelist
while True:
nennDenOrt = raw_input("tell me the name of your city\n")
if nennDenOrt in namelist:
print "here's your weather: "
temp = []
relfeuc = []
ns = []
sonne = []
timestamps = []
with open(path + nennDenOrt + ".dat", "r") as infile:
for line in infile:
line = line.strip() # remove whitespaces newlines etc
data = line.split(",")
temp.append[2]
relfeuc.append[3]
ns.append[4]
sonne.append(data[5])
print data[0]
actual_time = datetime.strptime(str(data[0]),"%Y-%m-%d %H-%M-%S")
timestamps.append(actual_time)
print data
plt.figure(1) # the first figure
plt.title("Ihr Wetter für " + nennDenOrt + " von " + timestamps[0] + " bis " + timestamps[1])
plt.subplot(221)
plt.plot(timestamps,temp)
plt.xlabel('Zeit')
plt.ylabel('°C')
...
данные, которые я использую для участков находится внутри * .dat и выглядит следующим образом:
2015-06-17 18-38-30,1184,12.9,68,0.0,45
2015-06-17 18-38 -33,1184,12,9,68,0,0,45
2015-06-17 18-38-36,1184,12.9,68,0.0,45
2015-06-17 18-38-40,1184,12.9,68,0.0,45 . ..
(время [0] будет ось х, а остальные 4 значения будут каждый по оси у 4-х различных участков.)
Я получаю сообщение об ошибке и не знать, как решить проблему:
plt.plot(timestamps,temp)
File "C:\Python27\ArcGIS10.2\lib\site-packages\matplotlib\pyplot.py", line 2987, in plot
ret = ax.plot(*args, **kwargs)
File "C:\Python27\ArcGIS10.2\lib\site-packages\matplotlib\axes.py", line 4137, in plot
for line in self._get_lines(*args, **kwargs):
File "C:\Python27\ArcGIS10.2\lib\site-packages\matplotlib\axes.py", line 317, in _grab_next_args
for seg in self._plot_args(remaining, kwargs):
File "C:\Python27\ArcGIS10.2\lib\site-packages\matplotlib\axes.py", line 295, in _plot_args
x, y = self._xy_from_xy(x, y)
File "C:\Python27\ArcGIS10.2\lib\site-packages\matplotlib\axes.py", line 237, in _xy_from_xy
raise ValueError("x and y must have same first dimension")
ValueError: x and y must have same first dimension
Возможно, некоторые из вам, что делать? Заранее большое спасибо !
только что понял, что у меня действительно нет плана, что я здесь делаю. забыл заполнить другие списки, которые я только что сделал: с открытым (путь + nennDenOrt + ".dat", "r") как infile: для строки в infile: line = line.strip() # удалить пробелы newlines и т. д. data = line.split (",") temp.append [2] relfeuc.append [3] ns.append [4] sonne.append (данные [5]) ----- но ошибка Сообщения продолжаются:/ – goatastic
Пожалуйста, добавьте другие детали для заполнения на вопрос, как обновление –
'temp.append [2]' неверно. append - это метод =>, поэтому вам нужны скобки вместо квадратных скобок => temp.append (2) 'или' temp.append (data [2]) '... то же самое для' relfeuc.append [3] ' и 'ns.append [4]' –