我需要你的帮助来绘制一个图表中的每个项目的一个框架(“事件”列)。我创建了一个循环,虽然结果带来了图形的数量和标题正确的期望,图形线考虑整个框架的值,不考虑过滤器中的“for - in”
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame()
df['Date']=['2023-07-01', '2023-07-02','2023-07-03','2023-07-04','2023-07-05','2023-07-01', '2023-07-02','2023-07-03','2023-07-04','2023-07-05']
df['Event']=['abc','def','abc','def','abc','def','abc','def','abc','def']
df['Value']=[43,12,19,45,34,21,21,45,38,14]
eve = df['Event'].unique()
for q in eve:
plt.figure(figsize=(10,6))
plt.plot(df['Date'],df['Value'], marker='o', linestyle='-', label='Value')
plt.xticks(rotation=90)
plt.title(q, fontsize=18)
plt.show()
plt.close()
字符串
前两个图像是获得的输出,最后两个图是期望的输出。
100d 1xx 1c 1d 1x的字符串
的
的
1条答案
按热度按时间au9on6nz1#
如果你删除
.sort_values(by=['Date'])
,这会产生你想要的图,但对我来说,在x轴上有随机日期似乎很奇怪。尽管这种方法是“干净”的,但它效率极低,不能很好地处理较大的数据集。如果性能有问题,请告诉我,这样我就可以给你一个更优化的版本。字符串
编辑:基于查找表的方法:
型
性能差异:
如前所述,在小数据集上,这并不重要,但如果您处理数十万或数百万行,差异就会迅速增加