【问题标题】:How do I plot this?我如何绘制这个?
【发布时间】:2021-02-26 19:27:41
【问题描述】:

我正在尝试构建一些软件来可视化每小时电价。到目前为止我有这个:

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: unhashable type: 'numpy.ndarray'

我能做些什么来解决这个问题?我是一个相当新的程序员,所以我觉得我错过了一些明显的东西。非常感谢您的帮助!

【问题讨论】:

  • 为什么不使用df.plot() ? Source
  • 我试试看!
  • 总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是截图,不是链接到外部门户)有问题(不是评论)。还有其他有用的信息。

标签: python python-3.x pandas matplotlib


【解决方案1】:

您不仅可以直接从 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()

【讨论】:

  • 非常感谢!这完美地解决了问题。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-25
  • 1970-01-01
  • 2020-09-01
相关资源
最近更新 更多