Я просматриваю текст ускоренного курса Python и получаю сообщение об ошибке «Ввод аргумента« y2 »не является одномерным» при попытке использовать часть fill_between в matplotlib.Я не уверен, почему.
Я пробовал это в PyCharm и Anaconda, но получаю ошибку в обеих IDE.Я довольно новичок в программировании и до сих пор не сталкивался с какими-либо проблемами при выполнении шагов, предусмотренных в тексте, до сих пор.В обоих случаях я использую Python 3.7 и Matplotlib 3.0.1
. В качестве примечания, я также не уверен, почему все месяцы не отображаются на оси x, но это отдельная проблема.
# Create a program where you import weather data from a csv file
# import the csv file, matplotlib(for visualizing), and datetime
import csv
from matplotlib import pyplot as plt
from datetime import datetime
# Create a variable that states the name of the file
filename = 'sitka_weather_2014.csv'
with open(filename) as file:
# passes the file as an argument to create a reader object
reader = csv.reader(file)
# keeps reading until there are no more rows
header_row = next(reader)
# Get high temperatures and their dates from the file
dates, highs, lows = [],[],[]
for row in reader:
current_date = datetime.strptime(row[0], "%Y-%m-%d")
dates.append(current_date)
high = int(row[1])
highs.append(high)
low = int(row[3])
lows.append([low])
# Plot Data
fig = plt.figure(dpi=250, figsize=(10,6))
plt.plot(dates, highs, c='red',alpha=0.5)
plt.plot(dates,lows, c='blue', alpha=0.5)
plt.fill_between(dates,highs,lows, facecolor='blue',alpha=0.1)
# Format Plot
plt.title("Monthly High Temperatures-2014", fontsize=24)
plt.xlabel('',fontsize=10)
fig.autofmt_xdate()
plt.ylabel('Temperature (F)',fontsize=16)
plt.tick_params(axis ='both', which='major',labelsize=16)
plt.show()
Я ожидаю, что тень покажет между верхней и нижней линиями.Однако в Anaconda отображаются только верхние и нижние линейные графики, и ошибки программы не будут отображать этот график в PyCharm.