matplotlib通过循环在一个轴上的多个绘图不更新y\ U lim

2024-04-25 02:18:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要创建一个数字,其中包含多个高斯直方图从参数列表(对μ和西格玛)。到目前为止我所拥有的:

import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
import numpy as np

def single_camel_plot(mu, sigma, ax):
    x = np.linspace(mu - 4*sigma, mu + 4*sigma, 1000)
    sns.lineplot(x, stats.norm.pdf(x, mu, sigma), ax=ax)
    ax.set_ylim(bottom=0)

fig, ax = plt.subplots()
mu_sigma_pairs = [(16900, 2100), (18200, 1500)]
for mu, sigma in mu_sigma_pairs:
    single_camel_plot(mu, sigma, ax)

输出就是这个数字。你知道吗

figure with wrong y_lim

理想情况下,两个直方图将使用一个y轴而不是次轴,并且ylim应该调整以适应最高的曲线。你知道吗


Tags: importplotasstatsnpplt数字ax
1条回答
网友
1楼 · 发布于 2024-04-25 02:18:48

您需要在循环外设置限制,以便在绘图已填充时自动缩放。你知道吗

import matplotlib.pyplot as plt
from scipy import stats
import numpy as np

def single_camel_plot(mu, sigma, ax):
    x = np.linspace(mu - 4*sigma, mu + 4*sigma, 1000)
    ax.plot(x, stats.norm.pdf(x, mu, sigma))   

fig, ax = plt.subplots()
mu_sigma_pairs = [(16900, 2100), (18200, 1500)]
for mu, sigma in mu_sigma_pairs:
    single_camel_plot(mu, sigma, ax)

ax.set_ylim(bottom=0)   # <   -  HERE

plt.show()

相关问题 更多 >