Python Matplotlib中,用ax.set_*替代plt.title等设置方法是否可行?
问题解答
当然可行!这种修改不仅完全没问题,甚至是更推荐的Matplotlib使用方式。
为什么两种写法都能生效?
plt.title()、plt.xlabel()这类函数属于Matplotlib的pyplot接口(状态机接口),它会自动作用于当前活跃的坐标轴(也就是你代码里的ax)。ax.set_title()、ax.set_xlabel()则属于面向对象接口,直接明确地操作指定的坐标轴对象,当你绘制多个子图的时候,这种方式能避免混淆,精准控制每个子图的元素。
关于plt.show()
完全不需要调整!plt.show()的作用是渲染并显示所有已经创建的Matplotlib图形对象,不管你是用pyplot接口还是面向对象接口设置的标签、标题,它都会正常展示。
修改后的完整代码示例
import matplotlib.pyplot as plt fig = plt.figure("Histogram") ax = fig.add_subplot(1,1,1) ax.hist([10,10,10,10,10,21,12,23,35,45,60,33,22,56,34,28,40,41],bins=7,ec='black',color = 'b') ax.set_title("Distribution") ax.set_xlabel("Range") ax.set_ylabel("Amount") plt.show()
内容的提问来源于stack exchange,提问作者darkweb
相关产品推荐
相关产品推荐

