【发布时间】:2023-02-22 01:23:00
【问题描述】:
我只需要调试我所拥有的东西的帮助。我按照我的理解最好地遵循了我们书中的一个例子,但我仍然遇到问题!我想通过从文件导入数据来绘制一年(2022 年)的日出和日落时间。我能够正确地找出导入的东西(我希望),但是当我在 Pycharm(我正在使用的 IDE)中运行它时,我仍然遇到错误。
具体是这些:
追溯(最近一次通话): 文件“C:\Users\sosar\PycharmProjects\pythonProject1\main.py”,第 27 行,位于 left_axis.plot(日期,日出,标签=“日出”) 文件“C:\Users\sosar\PycharmProjects\pythonProject1\venv\Lib\site-packages\matplotlib\axes_axes.py”,第 1688 行,在图中 lines = [*self._get_lines(*args, data=data, **kwargs)] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件“C:\Users\sosar\PycharmProjects\pythonProject1\venv\Lib\site-packages\matplotlib\axes_base.py”,第 311 行,在称呼从 self._plot_args( ^^^^^^^^^^^^^^^^ 文件“C:\Users\sosar\PycharmProjects\pythonProject1\venv\Lib\site-packages\matplotlib\axes_base.py”,第 504 行,在 _plot_args raise ValueError(f"x 和 y 必须具有相同的第一维度,但是 " ValueError:x 和 y 必须具有相同的第一维,但具有形状 (365,) 和 (364,)
老实说,我不擅长编码和调试。这花了很长时间才弄清楚,我不确定我是否做对了!但我会在下面发布我的代码!
感谢所有帮助,并提前感谢您!!!!
import csv
import datetime
import matplotlib.pyplot as plt
with open('sr_ss_clean.csv') as temp_file:
sunrise = []
sunset = []
reader = csv.reader(temp_file)
next(reader)
for row in reader:
sunrise.append(float(row[1]))
sunset.append(float(row[2]))
start_date = datetime.date(2022, 1, 1)
end_date = datetime.date(2022, 12, 31)
delta = datetime.timedelta(days=1)
date = []
while start_date <= end_date:
date.append(start_date)
start_date += delta
figure= plt.figure()
left_axis = figure.add_subplot(1, 1, 1)
right_axis = left_axis.twinx()
left_axis.plot(date, sunrise, label = "Sunrise")
left_axis.plot(date, sunset, label = "Sunset")
left_axis.set_xlabel('Date')
left_axis.legend(loc= 'upper left')
right_axis.set_ylabel('Time of Day')
plt.show()
【问题讨论】:
标签: python debugging plot graph pycharm