gpt4 book ai didi

python - 如何在 python 中用 MySQL 检索温度和日期时间绘制一条线

转载 作者:行者123 更新时间:2023-11-30 21:28:31 26 4
gpt4 key购买 nike

我们建立了一个 MySQL 数据库,其中存储了温度数据。我们现在想要检索这些数据,然后绘制它。我们所做的如下:

engine = create_engine("mysql://xxx:xxx@xxx@localhost/xxx")
conn = engine.connect()

list_temp = []
list_time = []

list_temp = pd.read_sql('SELECT temperature FROM Raw_Data WHERE topic="lpn1"', conn).astype(float).values
list_time = pd.read_sql('SELECT timestamp FROM Raw_Data WHERE topic="lpn1"', conn).astype(str).values

上面是建立与MySQL数据库的连接,然后我们从数据库中获取数据和时间戳。如果我们打印 list_temp 和 list_time,我们会看到:

[[30.4 ]
[29.71]
[29.46]
...
[20.07]
[21.05]
[21.87]]
[['2019-07-26 15:09:25']
['2019-07-26 15:24:26']
['2019-07-26 15:39:26']
...
['2019-08-20 14:07:49']
['2019-08-20 14:22:49']
['2019-08-20 14:37:49']]

这表明它们是嵌套的......

然后我们尝试通过这样做来保存绘图:

# plot
plt.plot(list_time,list_temp)
plt.gcf().autofmt_xdate()
plt.savefig('foo.png')

不幸的是,我们收到此错误:TypeError: unhashable type: 'numpy.ndarray' 当然,我们怀疑这一定是因为我们的值是嵌套的。

关于如何解决这个问题有什么想法吗?

最佳答案

list_temp 是一个只有一个元素的列表,也就是包含你的数据的列表。与 list_time 相同。所以替换这一行

plt.plot(list_time,list_temp)

用这个:

plt.plot(list_time[:,0], list_temp[:,0])

获取内部列表。

关于python - 如何在 python 中用 MySQL 检索温度和日期时间绘制一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57574381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com