【发布时间】:2014-07-04 13:53:41
【问题描述】:
我可以访问图形实例fig = pylab.gcf()。我知道在这个图中有一个图例,我可以通过myLegend = fig.gca().legend_ 访问它。现在我想更改图例的属性。其中一些我可以通过像myLegend.set_frame_on(True) 这样的设置器访问。
创建图例时,它接受多个关键字参数:
class matplotlib.legend.Legend(父、句柄、标签、loc=None, numpoints=None,markerscale=None,scatterpoints=None, scatteryoffsets=None,prop=None,fontsize=None,borderpad=None, 标签间距=无,句柄长度=无,句柄高度=无, handletextpad=None,borderaxespad=None,columnspacing=None,ncol=1, mode=None,fancybox=None,shadow=None,title=None,framealpha=None, bbox_to_anchor=无,bbox_transform=无,frameon=无, handler_map=无)
在创建图例之后如何修改图例中的所有关键字参数?
其中一个有问题的是numpoints(图例中的标记数,默认为2)。下面是我想如何改变它的例子:
这显示了我想如何编程
import pylab
pylab.plot(0,0,'ro', label = 'one point')
pylab.legend(loc = "lower left")
# no modifications above this line
setattr(pylab.gcf().gca().legend_, 'numpoints',1)
pylab.show()
这显示了我想要的样子
import pylab
pylab.plot(0,0,'ro', label = 'one point')
pylab.legend(numpoints = 1, loc = "lower left")
pylab.show()
我查了源代码,有一个numpoint变量被改变了,但是大写没有更新到屏幕上。我错过了什么?
【问题讨论】:
-
我怀疑你可以伸手去戳处理程序。
标签: python matplotlib legend