gpt4 book ai didi

python - 使用seaborn调整子图的大小

转载 作者:太空宇宙 更新时间:2023-11-03 15:40:31 25 4
gpt4 key购买 nike

我最近刚刚开始使用 matplotlib 和 seaborn 来绘制我的图表。这是我到目前为止编写的代码

count = 1
l=[13,0,47,29,10]
plt.figure(figsize=(30,40))

for ww in l:
temp_dict = defaultdict(list)
entropies = list()
for k,v in df.ix[ww].iteritems():
e = 0
for i in v:
temp_dict[k].append(float(i))
if not float(i) == 0:
e += -1.0*float(i)*log10(float(i))
entropies.append(e)

y = entropies
x=(range(len(entropies)))
slope, intercept, r_value, p_value, std_err = stats.linregress(x,y)

plt.subplot(len(lista_autori),2,count)
tdf = pd.DataFrame.from_dict(temp_dict, orient='columns')
a = tdf.dropna()
sns.set(font_scale=2)
#sns.factorplot(size=2, aspect=1)
sns.heatmap(a,linewidths=.5,cmap="RdBu_r")
plt.xlabel(ur'year')
plt.ylabel(ur'$PACS$')
count +=1

plt.subplot(len(lista_autori),2,count)
plt.plot(x,y)
x1 = (range(28))
y1 = [slope*i + intercept for i in x1]
plt.plot(x1,y1)
count +=1


plt.tight_layout();

结果如下:

enter image description here

我想调整每一行的大小,将行的 2/3 分配给左侧图片,剩余的分配给右侧图片。我试图查看给出的答案 here但当我必须混合 axe 和 seaborn 的热图时,我发现了一些困难。有什么帮助或其他解决方案吗?

最佳答案

linked question 的答案直接告诉你如何使用GridSpec实现不等列宽的网格。我在这里没有看到太大的区别,但也许下面的内容对你来说更容易理解,因为它使用seaborn热图,不止一行并且没有“斧头”。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import gridspec
import seaborn as sns

# generate some data
x = np.arange(0, 10, 0.2)
y = np.sin(x)
X = np.random.rand(3,4)

fig = plt.figure(figsize=(8, 6))
gs = gridspec.GridSpec(5, 2, width_ratios=[2, 1])

for i in range(5):
plt.subplot(gs[i*2+0])
sns.heatmap(X)
plt.subplot(gs[i*2+1])
plt.plot(x,y)

plt.show()

关于python - 使用seaborn调整子图的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42179048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com