seaborn如何通过导入包来改变pyplot的行为?

2024-05-26 11:11:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我很想知道seaborn是如何通过import seaborn as sns来改变matplotlib函数的行为的。 我想实现相同的函数来改变pyplot中imshow()函数的行为,例如,我想在图的左下角显示像素值。 当然可以重新定义imshow()函数,并导入重新定义的函数,但问题是我有多个脚本以多种不同的方式调用imshow(),例如,plt.imshow()imshow(),以及OOP样式axes.imshow()。有没有像seaborn那样的简单方法? 阅读seaborn的源代码当然会给我一些线索,如果我有时间奢侈。。。在


Tags: 函数import脚本定义matplotlibas方式plt
2条回答

您可以在python中重写您想要的任何内容

我的_pyplot.py

import matplotlib as mpl
def myPyPlot(*args,**kwargs):
    print "You Said:",args,kwargs

mpl.pyplot = myPyPlot

主.py

^{pr2}$

请注意,在导入修改过的内容之前,您需要导入您的内容

Seaborn不会按照您描述的方式更改matplotlib函数的行为。Matplotlibexposes许多自定义选项通过更改各种绘图参数的默认值而生效。当导入seaborn时,它运行一些代码,这些代码使用此功能来更改全局默认值。在

更改默认参数值和更改函数行为之间有一个重要区别。你提出的是后者,有时称为monkey patching。这是可能的,但这将不同于seaborn正在做的,而且我不会在任何类型的生产环境中推荐它。在

相关问题 更多 >