Python在两个变量之间按月绘制数据
我想在两个变量之间绘制数据。我想用一种特殊的颜色来绘制每月的数据 我的代码和预期输出:Python在两个变量之间按月绘制数据,python,matplotlib,Python,Matplotlib,我想在两个变量之间绘制数据。我想用一种特殊的颜色来绘制每月的数据 我的代码和预期输出: import matplotlib.pyplot as plt df A B 2019-01-01 10 20 2019-01-02 20 30 2019-02-01 10 15 2019-02-02 20 40 2019-03-01 12 32 2019-03-02 5 14 plt.plot(df['A'],df['B
import matplotlib.pyplot as plt
df
A B
2019-01-01 10 20
2019-01-02 20 30
2019-02-01 10 15
2019-02-02 20 40
2019-03-01 12 32
2019-03-02 5 14
plt.plot(df['A'],df['B'])
plt.show()
我当前的图像往常一样绘制了所有数据,但我希望下面给出的数据有所不同。
我的预期产出:
2019-03-01 10 20你可以这样做:
markers = 'dsxo'
months = pd.to_datetime(df.index).to_period('M')
for i, (k,d) in enumerate(df.groupby(months) ):
plt.plot(d['A'],d['B'], label=k, marker=markers[i])
plt.legend()
输出:
检查此代码:
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('data.csv')
df['Month'] = df.index.map(lambda x: x[:-3])
fig, ax = plt.subplots(1, 1, figsize = (6, 6))
for month in df['Month'].unique():
ax.plot(df[df['Month'] == month]['A'],
df[df['Month'] == month]['B'],
label = month)
plt.legend()
plt.show()
这给出了这个图表:
这看起来不错。实际上我有两年的数据。那么,24个标记。在这种情况下如何做到这一点?当我运行代码时,会出现以下错误:
AttributeError:“Index”对象没有属性“to_period”
下面是标记列表。另请参见字符串索引的更新。将plot
替换为scatter
。只需删除makerfacecolor
<代码>散点没有