为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Pandas 中绘制和标记多个自相关函数?

如何在 Pandas 中绘制和标记多个自相关函数?

牛魔王的故事 2022-06-14 17:16:02
我有几个变量,我想在一张图上查看它们的自相关函数。我可以做这个。但问题是我不确定如何创建一个图例,以便我知道哪个变量是哪个。这是我的数据的样子:import pandas as pd from pandas.plotting import autocorrelation_plotdf = pd.DataFrame(data = {    "Year": [y for y in range(1800, 2000)],    "Var 1": [random.random() for i in range(200)],     "Var 2": [random.random() for i in range(200)],     "Var 3": [random.random() for i in range(200)]})df.set_index("Year")现在这是我在一张图上绘制自相关函数的方法:for variable in df.columns:    autocorrelation_plot(df[variable])问题是没有传说,所以我不知道哪个变量是哪个。而且,autocorrelation_plot没有legend论据。
查看完整描述

3 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

我添加了一个标签变量来获取标签:

for variable in df.columns:
   ax = autocorrelation_plot(df[variable], label = variable)

股票数据

它奏效了


查看完整回答
反对 回复 2022-06-14
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

试试这个代码:


for variable in df.columns:

    ax = autocorrelation_plot(df[variable])


ax.legend(ax.get_lines())

autocorrelation_plot返回一个类型的对象,AxesSubplot它允许您像使用 matplotlib 一样操作图形。因此,要添加图例,您只需将函数刚刚绘制的线条作为参数传递。


例如,使用此代码,我打印每条打印行的颜色,然后更改行的标签,添加字符串variable:


i=0

for variable in df.columns:

    ax = autocorrelation_plot(df[variable])


    print(variable, ax.get_lines()[-1].get_color())


    for k in range(i, len(ax.get_lines())):

        ax.get_lines()[k].set_label(f'{k}_{variable}')

    i+=6


ax.legend(ax.get_lines())


查看完整回答
反对 回复 2022-06-14
?
守候你守候我

TA贡献1802条经验 获得超10个赞

我即兴创作了来自@Massifox 的答案,我能够为自相关图定制一个图例


from matplotlib.lines import Line2D

plot_color = []

for variable in df.columns:

    ax = autocorrelation_plot(df[variable])

    plot_color.append((ax.get_lines()[-1].get_color()))


custom_lines = [Line2D([0],[0], color=plot_color [0], lw=2),

                Line2D([0],[0], color=plot_color [1], lw=2),

                Line2D([0],[0], color=plot_color [2], lw=2)]

                

ax.legend(custom_lines, ['label1', 'label2', 'label3'])

//img1.sycdn.imooc.com//62a852000001f20d05620419.jpg

查看完整回答
反对 回复 2022-06-14
  • 3 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信