gpt4 book ai didi

python - Matplotlib 图例不起作用

转载 作者:IT老高 更新时间:2023-10-28 21:33:05 28 4
gpt4 key购买 nike

自从升级 matplotlib 后,每当尝试创建图例时,我都会收到以下错误:

/usr/lib/pymodules/python2.7/matplotlib/legend.py:610: UserWarning: Legend does not support [<matplotlib.lines.Line2D object at 0x3a30810>]
Use proxy artist instead.

http://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist

warnings.warn("Legend does not support %s\nUse proxy artist instead.\n\nhttp://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist\n" % (str(orig_handle),))
/usr/lib/pymodules/python2.7/matplotlib/legend.py:610: UserWarning: Legend does not support [<matplotlib.lines.Line2D object at 0x3a30990>]
Use proxy artist instead.

http://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist

warnings.warn("Legend does not support %s\nUse proxy artist instead.\n\nhttp://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist\n" % (str(orig_handle),))

这甚至发生在这样一个简单的脚本中:

import matplotlib.pyplot as plt

a = [1,2,3]
b = [4,5,6]
c = [7,8,9]

plot1 = plt.plot(a,b)
plot2 = plt.plot(a,c)

plt.legend([plot1,plot2],["plot 1", "plot 2"])
plt.show()

我发现错误指向我的链接在诊断错误来源方面毫无用处。

最佳答案

你应该添加逗号:

plot1, = plt.plot(a,b)
plot2, = plt.plot(a,c)

你需要逗号的原因是因为 plt.plot() 返回一个线对象的元组,不管实际从命令创建了多少。没有逗号,“plot1”和“plot2”是元组而不是行对象,导致后面对 plt.legend() 的调用失败。

逗号隐含地解包结果,以便“plot1”和“plot2”自动成为元组中的第一个对象,而不是元组,即您真正想要的线对象。

http://matplotlib.sourceforge.net/users/legend_guide.html#adjusting-the-order-of-legend-items

line, = plot(x,sin(x)) what does comma stand for?

关于python - Matplotlib 图例不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11983024/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com