gpt4 book ai didi

Python:如何将 ggplot 与简单的 2 列数组一起使用?

转载 作者:太空狗 更新时间:2023-10-29 22:26:41 26 4
gpt4 key购买 nike

我尝试使用 ggplot for python我有以下数据:

power_data = [[  4.13877565e+04,   2.34652000e-01],
[ 4.13877565e+04, 2.36125000e-01],
[ 4.13877565e+04, 2.34772000e-01],
...
[ 4.13882896e+04, 2.29006000e-01],
[ 4.13882896e+04, 2.29019000e-01],
[ 4.13882896e+04, 2.28404000e-01]]

我想在 ggplot 中表示它有了这个:

print ggplot(aes(x='TIME', y='Watts'), data=power_data) + \
geom_point(color='lightblue') + \
geom_line(alpha=0.25) + \
stat_smooth(span=.05, color='black') + \
ggtitle("Power comnsuption over 13 hours") + \
xlab("Time") + \
ylab("Watts")

但出现错误:

  File "C:\PYTHON27\lib\site-packages\ggplot\ggplot.py", line 59, in __init__
for ae, name in self.aesthetics.iteritems():
AttributeError: 'list' object has no attribute 'iteritems'
>>>

我不知道行 aes(x='TIME', y='Watts') 应该做什么。

如何格式化 power_data 列表以便我可以将它与 ggplot 一起使用,我希望第一列代表时间 x 轴,第二列代表功率 y 轴?

如果我尝试使用 meat 示例,它什么都不显示,它只显示

>>> print (ggplot(aes(x='date', y='beef'), data=meat) + \
... geom_line())
<ggplot: (20096197)>
>>>

我应该怎么做才能进一步显示图形?

最佳答案

我错过了 3 个重要步骤:

1) 首先,数据需要采用如下格式:

[{'TIME': 41387.756495162001, 'Watts': 0.234652},
{'TIME': 41387.756500821, 'Watts': 0.236125},
{'TIME': 41387.756506480997, 'Watts': 0.23477200000000001},
{'TIME': 41387.756512141001, 'Watts': 0.23453099999999999},
...
{'TIME': 41387.756574386003, 'Watts': 0.23558699999999999},
{'TIME': 41387.756580046, 'Watts': 0.23508899999999999},
{'TIME': 41387.756585706004, 'Watts': 0.235041},
{'TIME': 41387.756591365003, 'Watts': 0.23541200000000001},
{'TIME': 41387.756597013002, 'Watts': 0.23461699999999999},
{'TIME': 41387.756602672998, 'Watts': 0.23483899999999999}]

2) 然后数据需要用DataFrame

修饰
powd = DataFrame(data2)

3) 如果没有 plt.show(1),绘图将不会显示

下面是解决上述问题的代码:

from pandas import DataFrame
data2 = []
for i in range(0,len(power_data)):
data2.append({'TIME': power_data[i][0], 'Watts': power_data[i][1]})

powd = DataFrame(data2)
print powd

# the above can be changed with this line:
# powd = DataFrame(power_data, columns=['TIME', 'Watts'])
# see sugestion in comments

print ggplot(aes(x='TIME', y='Watts'), data=powd) + \
geom_point(color='lightblue') + \
geom_line(alpha=0.25) + \
stat_smooth(span=.05, color='black') + \
ggtitle("Power comnsuption over 13 hours") + \
xlab("Time") + \
ylab("Watts")

或者comment 中提供的没有for 的一次传递中:

powd = DataFrame(power_data, columns=['TIME', 'Watts'])
print ggplot(aes(x='TIME', y='Watts'), data=powd) + \
geom_point(color='lightblue') + \
geom_line(alpha=0.25) + \
stat_smooth(span=.05, color='black') + \
ggtitle("Power comnsuption over 13 hours") + \
xlab("Time") + \
ylab("Watts")

关于Python:如何将 ggplot 与简单的 2 列数组一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19497282/

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