AttributeError:'NoneType'对象没有属性'legendHandles',而在自定义图例中为每个标签手动分配颜色时
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AttributeError:'NoneType'对象没有属性'legendHandles',而在自定义图例中为每个标签手动分配颜色时相关的知识,希望对你有一定的参考价值。
我正在运行三个不同的for
循环来分析三个不同的数据集。但是,所有数据都被绘制为一个。另外,我正在尝试为自定义图例分配颜色。这是我的代码:
for j in green_data:
x,y = blah.....
plt.plot(x,y,'g')
for j in black_data:
x,y = blah.....
plt.plot(x,y,'k')
for j in red_data:
x,y = blah.....
plt.plot(x,y,'r')
ax = plt.gca()
leg = ax.get_legend()
leg.legendHandles[0].set_color('green')
leg.legendHandles[1].set_color('black')
leg.legendHandles[2].set_color('red')
plt.legend(['Green data','Black data','Red data'],loc='best')
plt.xlabel("x data")
plt.ylabel("y data")
plt.show()
当前输出:
AttributeError: 'NoneType' object has no attribute 'legendHandles'
是什么导致我的代码错误?
答案
您需要首先创建图例。
ax.get_legend()
仅在创建图例之后才起作用。尝试使用leg = ax.legend()
。
https://jakevdp.github.io/PythonDataScienceHandbook/04.06-customizing-legends.html
以上是关于AttributeError:'NoneType'对象没有属性'legendHandles',而在自定义图例中为每个标签手动分配颜色时的主要内容,如果未能解决你的问题,请参考以下文章
AttributeError:'str'对象没有属性'author'
Python问题——AttributeError: 'NoneType' object has no attribute 'append'
text AttributeError:模块'enum'没有属性'IntFlag'
返回AttributeError:'int'对象没有属性'encode'
pymysql报AttributeError: module 'pymysql' has no attribute 'connect'