我对在同一张图表上绘制几个数据有一些疑问,该图表是由一个函数创建的,其中的参数是一个明确指定的字段。
def plot_freq(f):
p=my_data.set_index('Date').Items.str.count(f).sum(level=0).to_frame('Count').reset_index()
s2=p.sort_values('Count', ascending=False)
ax=p.plot(x="Date", y=["Count"], kind="line", figsize=(30,20), legend=False)
p.plot(ax=ax)
ax.set_xticklabels(ax.get_xticklabels(), ha='right')
return(p)
这将通过指定关键搜索词f
来生成绘图。
这意味着如果我有一个数据集的样本
Date Items
24/05/2020 Item_1
24/05/2020 Item_3
25/05/2020 Item_1
25/05/2020 Item_1
25/05/2020 Item_3
诸若此类
它将绘制随时间变化的项目,如下所示:
plot_freq('Item_1') for Item_1
plot_freq('Item_3') for Item_3
到目前为止。
我想在同一张图表上比较上面的曲线图,但不幸的是,在这种方式下我有不同的曲线图。为了做到这一点,我应该有和项目一样多的行。
你能告诉我怎样才能达到预期产量吗?
发布于 2020-06-27 19:04:00
您可以预先创建一个axis对象,然后重写plot_freq()
以将给定轴作为关键字传递给p.plot()
def plot_freq(f,ax=None):
p=my_data.set_index('Date').Items.str.count(f).sum(level=0).to_frame('Count').reset_index()
s2=p.sort_values('Count', ascending=False)
ax=p.plot(x="Date", y=["Count"], kind="line", figsize=(30,20), legend=False, ax=ax)
ax.set_xticklabels(ax.get_xticklabels(), ha='right')
return(p)
然后创建轴并将其作为参数传递给两个调用。
fig,ax = plt.subplots()
plot_freq('Item_1', ax=ax)
plot_freq('Item_3', ax=ax)
发布于 2020-06-27 19:03:24
要处理相同的图形(图表),您应该创建图形。我看不到plt.figure(),在此之后,您可以获取当前图形并对其执行某些操作。我想它会让你满意的。
plt.gcf()方法(gcf对应于getcurrentfigure)
https://stackoverflow.com/questions/62614080
复制