如何解决如何并排绘制密度图
我想在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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。