Python 使用statsmodel更改fig大小

Python 使用statsmodel更改fig大小,python,matplotlib,statsmodels,Python,Matplotlib,Statsmodels,我正在尝试使用statsmodel软件包制作QQ图。然而,该图的分辨率太低,我不可能在演示中使用结果 我知道,要使networkX图形打印出更高分辨率的图像,我可以使用: plt.figure( figsize=(N,M) ) networkx.draw(G) 并改变N和M的值以获得理想的结果 然而,当我使用statsmodel软件包中的QQ图尝试相同的方法时,它似乎对结果图的大小没有影响,即当我使用 plt.Figure( figsize = (N,M) ) statsmodels.qqpl

我正在尝试使用statsmodel软件包制作QQ图。然而,该图的分辨率太低,我不可能在演示中使用结果

我知道,要使networkX图形打印出更高分辨率的图像,我可以使用:

plt.figure( figsize=(N,M) )
networkx.draw(G)
并改变N和M的值以获得理想的结果

然而,当我使用statsmodel软件包中的QQ图尝试相同的方法时,它似乎对结果图的大小没有影响,即当我使用

plt.Figure( figsize = (N,M) )
statsmodels.qqplot_2samples(sample1, sample2, line = 'r')

改变M和N对图形大小没有影响。关于如何解决这个问题(以及为什么这个方法不起作用)有什么想法吗?

您可以在打印之前使用
mpl.rc\u context
临时设置默认的
figsize

import numpy as np
import matplotlib as mpl
from statsmodels.graphics.gofplots import qqplot_2samples

np.random.seed(10)
sample1 = np.random.rand(10)
sample2 = np.random.rand(10)
n, m = 6, 6

with mpl.rc_context():
    mpl.rc("figure", figsize=(n,m))
    qqplot_2samples(sample1, sample2, line = 'r')

函数的
qqplot_2samples
有一个
ax
参数,允许您指定 应在其上绘制绘图的matplotlib轴对象。如果你不供应 单击ax,然后为您创建一个新的轴对象

因此,作为cel解决方案的替代方案,如果您希望创建自己的身材, 然后,还应将地物的轴对象传递到
qqplot_2samples

sm.qqplot_2samples(sample1, sample2, line='r', ax=ax)

比如说,

import scipy.stats as stats
import matplotlib.pyplot as plt
import statsmodels.api as sm

N, M = 6, 5
fig, ax = plt.subplots(figsize=(N, M))
sample1 = stats.norm.rvs(5, size=1000)
sample2 = stats.norm.rvs(10, size=1000)
sm.qqplot_2samples(sample1, sample2, line='r', ax=ax)
plt.show()

这是一个很好的解决方案,也适用于其他情节——我投了更高的票。下面是acf和pacf图的实现

N, M = 12, 6
fig, ax = plt.subplots(figsize=(N, M))
plot_pacf(df2, lags = 40, title='Daily Female Births', ax=ax)
plt.show()
在绘图之前,只需使用plt.rc(“figure”,figsize=(16,8))。

检查此链接

import numpy as np
import matplotlib as mpl
from statsmodels.graphics.gofplots import qqplot_2samples

np.random.seed(10)
sample1 = np.random.rand(10)
sample2 = np.random.rand(10)
n, m = 6, 6

with mpl.rc_context():
    mpl.rc("figure", figsize=(n,m))
    qqplot_2samples(sample1, sample2, line = 'r')
我使用了
plt.rc()

plt.rc(“图”,figsize=(10,6))
sm.graphics.tsa.plot_acf(漂亮的价格50,滞后=36000);

这是一个很好的解决方案-我更喜欢这个,而不是我的。这是一个很好的解决方案,它适用于其他类似的绘图。以下是按如下方式导入的自相关(acf)和偏自相关(pacf)绘图的实现:
来自statsmodels.graphics.tsaplots导入绘图acf,绘图pacf