python - 我如何绘制这个?
问题描述
我正在尝试构建一些软件来可视化每小时的电价。到目前为止我有这个:
import warnings
warnings.filterwarnings('ignore')
import numpy as np
import pytz
import matplotlib.pyplot as plt
import pandas as pd
import dateutil
import csv
with open('Hourly_Prices2.csv', newline='') as f:
reader = csv.reader(f)
data = list(reader)
df = pd.DataFrame(data)
df.columns=['Hour of Day', 'Spot Price']
df.drop(0, inplace=True)
df.set_index('Hour of Day', inplace=True)
print (df)
plt.xlabel("Hour of Day")
plt.ylabel("Spot Price (MWH)")
plt.title("Daily Price of Electricity")
plt.plot(df)
所有数据框的东西似乎都工作正常,我的意思是 csv 文件打开正常,我可以输出两列,一列显示小时,另一列显示该小时的现货价格。我的问题是,当我尝试使用 绘制它时,会plt.plot(df)
收到一条消息
TypeError:不可散列的类型:'numpy.ndarray'
我能做些什么来解决这个问题?我是一个相当新的程序员,所以我觉得我错过了一些明显的东西。非常感谢您的帮助!
解决方案
您不仅可以直接从 DataFrame 绘图,还可以将 csv 直接读入 DataFrame,如下所示:
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('Hourly_Prices2.csv')
df.columns = ['Hour of Day', 'Spot Price']
df.set_index('Hour of Day', inplace=True)
print(df)
df.plot()
plt.xlabel("Hour of Day")
plt.ylabel("Spot Price (MWH)")
plt.title("Daily Price of Electricity")
plt.show()
推荐阅读
- javascript - ReactJS:组件不会在状态更改时重新呈现
- javascript - 我怎么知道在 navigator.mediaDevices.enumerateDevices() 上返回的输入 MediaDeviceInfo 实际上是外部的
- c# - How can I decrypt a file in C# which has been encrypted by des.exe?
- python-3.x - 如何捕获新页面 selenium scrapy 的 url
- hibernate - InstantiationException:在 Kotlin 中使实体字段不可为空时,没有实体的默认构造函数
- typescript - 在我的应用程序中使用单例。我是否正确实施它?
- system-verilog - 带有变量的系统verilog绑定断言序列
- javascript - 有什么原因,为什么 HTML 表单中的禁用字段仍然被传输?
- xamarin.forms - Xamarin.Forms、iOS、Android 中的后台服务
- uwp - UWP 标题栏的自定义