如何控制何时绘制海图?

时间:2019-07-12 00:39:45

标签: python matplotlib seaborn

我有以下代码,在这些代码中,我创建数据的分布图,获取绘制的曲线的数据,并使用积分计算上方的面积。但是我想决定是否必须以图形方式绘制图表。因为有时候我想绘图以图形方式查看分布,但是其他时候我只想查看所计算区域的数值结果。

fig, axs = plt.subplots(nrows=len(marcos), ncols=1, figsize=(5, 2.5*len(marcos)))

for i, m in enumerate(marcos):
    axs[i].set(ylabel=m)
    axs[i].set_xlim(-marcos_x_lim[i],marcos_x_lim[i])
    sns.distplot(data[data['color']=='verde'][m], hist=False, color="g", kde_kws={"shade": True}, ax=axs[i])

    meanG = data[data['color']=='verde'][m].mean()
    medianG = data[data['color']=='verde'][m].median()
    axs[i].axvline(meanG, color='g', linestyle='-')
    axs[i].axvline(medianG, color='g', linestyle='--')

    #Get the data from the KDE line
    xdata_v, ydata_v = axs[i].get_lines()[0].get_data()

    area_v_pos = scipy.integrate.trapz(...)

我尝试使用plt.ioff(),但它不起作用,图表始终显示在控制台中。我正在使用Spyder。

1 个答案:

答案 0 :(得分:0)

您可以使用plt.closeplt.show()-例如

df = pd.read_csv(r'https://vincentarelbundock.github.io/Rdatasets/csv/datasets/mtcars.csv').rename({'Unnamed: 0':'car'}, axis=1)

for col in ['hp', 'disp', 'cyl', 'gear']:
    plt.scatter(df[col], df['mpg'])
    plt.title(col)
    # plt.savefig() 
    # etc.
    if col in ['hp', 'disp']:
        plt.show()
    else:
        plt.close()