Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python matplotlib.pyplot:打印数据帧时如何包含自定义图例?_Python_Python 3.x_Pandas - Fatal编程技术网

Python matplotlib.pyplot:打印数据帧时如何包含自定义图例?

Python matplotlib.pyplot:打印数据帧时如何包含自定义图例?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我在同一张图表中绘制了两个数据框:美元兑欧元汇率和3天移动平均线 df.plot(ax=ax, linewidth=1) rolling_mean.plot(ax=ax, linewidth=1) 两个数据帧都标记为“值”,因此我想定制: 我尝试传递标签选项,但没有成功,因为这个选项似乎是独占的,而不是独占的。因此,我尝试使用轴代替,并传递每个标签: ax.plot(df, linewidth=1, label='FRED/DEXUSEU') ax.plot(rolling_mean, li

我在同一张图表中绘制了两个数据框:美元兑欧元汇率和3天移动平均线

df.plot(ax=ax, linewidth=1)
rolling_mean.plot(ax=ax, linewidth=1)
两个数据帧都标记为“值”,因此我想定制:

我尝试传递
标签
选项,但没有成功,因为这个选项似乎是独占的,而不是独占的。因此,我尝试使用轴代替,并传递每个标签:

ax.plot(df, linewidth=1, label='FRED/DEXUSEU')
ax.plot(rolling_mean, linewidth=1, label='3-day SMA')
但是,现在图例根本不会显示,除非我在之后显式调用
ax.legend()


是否可以在传递自定义标签时打印数据帧,而不需要额外的显式调用?

使用
df.plot()
设置标签时,必须指定正在打印的数据:

fig, (ax1, ax2) = plt.subplots(1,2)

df = pd.DataFrame({'Value':np.random.randn(10)})
df2 = pd.DataFrame({'Value':np.random.randn(10)})

df.plot(label="Test",ax=ax1)
df2.plot(ax=ax1)

df.plot(y="Value", label="Test",ax=ax2)
df2.plot(y="Value", ax=ax2)

ax1.set_title("Reproduce problem")
ax2.set_title("Possible solution")

plt.show()
其中:


更新:打印数据帧和打印序列之间似乎存在差异。打印数据框时,标签取自列名。但是,当指定
y=“Value”
时,您将绘制一个系列,然后实际使用
标签
参数

非常奇怪的是,显式指示要绘制的列会触发图例,但它确实起作用。我想我使用这些库的次数越多就越有意义。@dabadaba我更新了我的答案,并解释了为什么会发生这种情况