gpt4 book ai didi

python - 在多个轴上绘制预先计算的图表

转载 作者:太空宇宙 更新时间:2023-11-03 14:00:18 24 4
gpt4 key购买 nike

一些 matplotlib 或 seaborn 函数需要大量时间进行计算,例如kdeplot

我想创建 plt.subplots(2, 3),将相同的 kde 图放置到所有六个轴上,然后独立地将其他内容添加到每个轴上。当然,我不想计算 kdeplot 6 次。

如何避免多次计算?

最佳答案

这将有助于更多地了解您正在使用的数据类型以及生成的 kdeplot。基本上,seaborn 是一个生成漂亮绘图的辅助库,但它依赖其他库来完成繁重的工作。所以我认为解决你的问题最简单的方法是弄清楚seaborn如何计算KDE,自己进行计算,然后在你的子图中绘制结果。

例如:

mean, cov = [0, 2], [(1, .5), (.5, 1)]
x, y = np.random.multivariate_normal(mean, cov, size=50).T
ax = sns.kdeplot(x, shade=True, color="r")

enter image description here

Looking at the code for kdeplot() ,我看到它使用 statsmodel (或 scipy)来计算 KDE。它甚至使用了一个小的辅助函数,我可以使用它:

fig, axs = plt.subplots(2, 3)

# adjust parameters as you would calling sns.kdeplot
kde_x,kde_y = sns.distributions._statsmodels_univariate_kde(x, kernel="gau",
bw="scott", gridsize=100, cut=3, clip=(-np.inf, np.inf),
cumulative=False)

for ax in axs.flatten():
# adjust parameters to match your desired output
ax.plot(kde_x,kde_y)
ax.fill_between(kde_x, 0, kde_y, alpha=0.25, clip_on=True, zorder=1)

enter image description here

关于python - 在多个轴上绘制预先计算的图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49294705/

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