gpt4 book ai didi

python - 使用循环 Python 绘制重复值

转载 作者:行者123 更新时间:2023-12-01 08:49:55 24 4
gpt4 key购买 nike

我有一些数据,看起来像data = pd.read_csv(....):

Year    Month     HOUR  NAME            RATE
2010 1 0 Big 222
2010 1 0 Welsch Power 434
2010 1 0 Cottonwood 124
2010 1 1 Big 455
2010 1 1 Welsch Power 900
2010 1 1 Cottonwood 110
.
.
.
2010 2 0 Big 600
2010 2 0 Welsch Power 1000
2010 2 0 Cottonwood 170
.
.
2010 3 0 Big 400
2010 3 0 Welsch Power 900
2010 3 0 Cottonwood 110

如您所见,HOUR ( 0 - 23 ) 每个月 ( 0 - 12 ) 都会重复。我需要一种方法来循环遍历值,以便我可以按小时绘制RATE(Y轴)每月(X轴)对于每个名称。

我的尝试如下:

for name, data in data.groupby('NAME'):
fig = plt.figure(figsize=(14,23))
plt.subplot(211)
plt.plot(data['HOUR'], data['RATE'], label=name)
plt.xlabel('Hour')
plt.ylabel('Rate')
plt.legend()
plt.show()
plt.close()

这是可行的,但因为 HOUR 会重复月份中的每个变化,所以每次循环时图表都会回到 0。我希望将 12 个月中的每一个月作为一张图表上每个名称的不同颜色的单独线条,但目前它们看起来像这样:

enter image description here

最佳答案

.pivot 你的 DataFrame 在 groupby 之后,这样它就会将每个月绘制成不同的线:

import matplotlib.pyplot as plt

for name, gp in df.groupby(['NAME']):
fig, ax = plt.subplots()
gp.pivot(index='HOUR', columns='Month', values='RATE').plot(ax=ax, marker='o', title=name)
plt.show()

enter image description here enter image description here enter image description here

关于python - 使用循环 Python 绘制重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53174136/

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