我有一个 Dataframe :
Element Date Q
0 A 24/10/2021 17:16 400
1 B 24/10/2021 18:59 210
2 A 26/10/2021 18:42 325
3 A 26/10/2021 19:44 589
4 B 29/10/2021 14:23 251
5 A 01/11/2021 9:12 578
6 B 02/11/2021 21:30 321
7 A 04/11/2021 18:25 248
8 B 05/11/2021 10:29 854
9 A 05/11/2021 10:26 968
10 A 07/11/2021 18:10 852
11 A 09/11/2021 16:35 425
12 B 09/11/2021 21:55 752
13 A 11/11/2021 18:41 385
14 B 13/11/2021 11:15 658
15 A 14/11/2021 18:17 229
16 B 16/11/2021 22:36 258
17 A 17/11/2021 17:05 359
18 A 18/11/2021 16:39 210
19 B 19/11/2021 15:41 583
我想在同一张图的"元素"列中画出共享同一个x轴的两个元素的值"Q",但是我不能得到它。
我曾尝试将它们分离到两个 Dataframe 中,但这不是一个好的解决方案:
第一次
这是两次尝试的结果:
ax = dfA.plot.scatter(x="Date",y="Q",rot=90)
dfB.plot.scatter(x="Date",y="Q",rot=90, ax=ax, color='r')
df_A = df[df['Element'] == 'A'].set_index('Date')
df_B = df[df['Element'] == 'B'].set_index('Date')
plt.figure()
ax = df_A[['Q']].plot(figsize=(20,5))
df_B[['Q']].plot(ax=ax)
ax.xaxis.set_major_locator(mdates.DayLocator(interval=1))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%Y'))
plt.gcf().autofmt_xdate()
plt.show()
Graph 2
我想用一个共同的日期范围表示共享X轴的两组点,我需要一个带有标签"A"和"B"的图例。
1条答案
按热度按时间jdzmm42g1#
如果将
Date
列转换为时间戳,则第一个属性可能会出错。散点图要求x轴和y轴上的值都是数字。当您在x轴上提供字符串时,它们将被视为位置[0,1,2,3,...],其中 * 刻度线 * 等于所提供的值。