当前位置: 代码迷 >> 综合 >> 『python工作』matplotlib 库的一些注意点
  详细解决方案

『python工作』matplotlib 库的一些注意点

热度:9   发布时间:2024-01-04 11:37:16.0

1、在画多幅图时,每画一张图后都要使用 plt.close() 将图关闭,否则每张图都会累积画到下一幅图

2、画多个图表时可以使用 plt.figure(fig_i) 来创建

3、在同一个图中画多个子图时,可以使用 plt.subplot(221) ,221 的意思是,建立两行两列共 4 个图,并且把该图画在第一个图中

4、多个数据源画多个图表,且每个图表有多个子图,可使用如下代码:

def data_plt(data_tuple, save_path="YDY_fig", name=""):"""数据可视化:return:"""data_1, data_2, data_3, data_4 = data_tuple# 判断文件夹是否存在,如不存在则创建path = os.getcwd()dir_path = path + "//%s" % save_pathif not os.path.exists(dir_path):os.mkdir(dir_path)fig_i = 1for i, col in enumerate(data_1.columns):# 过滤每列中的 NAN 值data_1_filter_nan = df_filter_nan(data_1, col)data_2_filter_nan = df_filter_nan(data_2, col)data_3_filter_nan = df_filter_nan(data_3, col)data_4_filter_nan = df_filter_nan(data_4, col)data_filter_nan_tuple = data_1_filter_nan, data_2_filter_nan, data_3_filter_nan, data_4_filter_nanstep = re.findall(r"[0-9]+", col)[0]plt.figure(fig_i)  # 选择画在图表 fig_isub_fig_i = 221for data_i in data_filter_nan_tuple:NT = scs.norm.fit(data_i[col])  # `正态检验`plt.sca(plt.subplot(sub_fig_i))  # 画在子图 sub_fig_iplt.hist(data_i[col])  # 画图plt.axis([0, 100, 0, len(data_i)])plt.ylabel('Freq')plt.title(r'$ step=%s, \ \mu=%.2f ,\ \sigma=%.2f $' % (step, float(NT[0]), float(NT[1])))plt.grid(True)sub_fig_i += 1plt.savefig(r"%s/%s_%s.png" % (save_path, name, col))fig_i += 1# plt.show()# 关闭图plt.close()return None




  相关解决方案