如何并排绘制密度图

问题描述

我想在Python上绘制多个密度图,不是作为一个图,而是作为一个窗口下的多个图。我该如何使用matplotlib的Python?

下面是我尝试过的方法,该方法不起作用:

import numpy as np
import torch
from matplotlib import pyplot as plt
from matplotlib.pyplot import (plot,savefig,xlim,figure,ylim,legend,boxplot,setp,axes,xlabel,ylabel,xticks,axvline)
import seaborn as sns

layer_list_G1_G2 = [[80.,69.,52.],[82.,83.,80.],[78.,81.,59.]]

def make_density(layer_list,color,nlayer):

    
    fig = plt.figure(figsize=(20,6))
    grid = plt.GridSpec(2,6)

    ax_main = fig.add_subplot(grid[0,0])
    
    plt.title('Density Plot of Median Stn. MC-Losses at Layers 1 - 12')
    plt.xlabel('MC-Loss')
    plt.ylabel('Density')
    plt.xlim(-0.2,0.05)
    plt.ylim(0,85)
    min_ylim,max_ylim = plt.ylim()
    
    for j in range(nlayer):
        
        layer_list_tensor = torch.tensor(layer_list[j]) 
        
        den_j = fig.add_subplot(grid[j//6,j % 6],sharex=ax_main,sharey=ax_main)
        
                # Draw the density plot
        den_j.sns.distplot(layer_list,hist = False,kde = True,kde_kws = {'linewidth': 2},color=color)
  
        plt.axvline(layer_list_tensor.median().tolist(),color='orange',linestyle='dashed',linewidth=1.5)

        plt.text(layer_list_tensor.median().tolist()*0.87,80,'median: {:.2f}'.format(layer_list_tensor.median().tolist()))

>>> make_density(layer_list_G1_G2,'green',12)

谢谢

解决方法

您需要将轴参考传递给ax=的{​​{1}}关键字

例如

distplot

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...