【发布时间】:2021-02-09 19:26:19
【问题描述】:
我正在使用 matplotlib 绘制折线图。在所有其他情况下,它通常会自动检测图例,但这次我使用数据透视表来绘制图表,我认为这正在阻止它。结果我不确定如何绘制图例。
No handles with labels found to put in legend.
我的代码如下;
x = t['month'].unique()
y = t.pivot(index='month', columns='T_Name', values='HIR_Won')[t['T_Name'].unique()]
#n = len(t['T_Name'].unique())
ax = plt.axes(label=data.index)
ax.legend()
ax.set_prop_cycle('color',[plt.cm.Greens(i) for i in np.linspace(0, 1, n)])
for i in range(n):
plt.plot(x, y)
添加了标签 arg
#n = len(t['T_Name'].unique())
ax = plt.axes()
ax.set_prop_cycle('color',[plt.cm.Greens(i) for i in np.linspace(0, 1, n)])
for i in range(n):
plt.plot(x, y, label=y.columns)
ax.legend()
【问题讨论】:
-
你应该在所有的情节之后移动
ax.legend。另外,将label='some_label'传递给plt.plot(x,y)。 -
我认为当我添加标签约束时构建枢轴的方式我没有将单个名称映射到每个图。查看更新后的帖子。
-
也许你想打电话给
plt.plot(x, y, label=y.columns[i])? -
你能清理一下示例代码吗?当您不断地绘制相同的
x和y时,在i上循环是没有意义的。此外,图像显示类似label=y.index,而不是label=y.columns -
是的,作为标签,每个循环步骤应该只有一个。只需测试一下,将 y.columns 替换为 i。这个错误都是关于向 plt.plot() 添加标签,这样你就有了 plt.plot(x, y, label=SOME_LABEL_FOR_CURRENT_LOOP_STEP)。
标签: matplotlib charts legend