我正在制作一个自定义绘图配置函数 plt_configure
,因此我可以将标签、图例和其他绘图选项与一个命令组合在一起。
对于图例,我想做类似的事情:
plt_configure(legend={loc: 'best'})
# => plt.legend(loc='best')
plt_configure(legend=True)
# => plt.legend()
那函数应该怎么定义呢?
现在我将函数定义为:
def plt_configure(xlabel='', ylabel='', legend=False):
plt.xlabel(xlabel)
plt.ylabel(ylabel)
if legend:
# if legend passed as options
plt.legend(options)
或者我的功能设计不好,考虑以上两种情况,什么是好的设计? # 别的 plt.图例()
最佳答案
空字典的计算结果为 False
,非空字典的计算结果为 True
。因此,无论 legend
是字典还是 bool 值,您都可以使用 if legend
。
然后你可以测试legend
是否是一个dict,并将它传递给plt.legend
def plt_configure(xlabel='', ylabel='', legend=False):
plt.xlabel(xlabel)
plt.ylabel(ylabel)
if legend:
if isinstance(legend, dict):
plt.legend(**legend)
else:
plt.legend()
关于Python 和 Matplotlib : How to pass dict to functions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37585863/