Python 使用matplotlib修改scipy stats.probplot绘图函数

Python 使用matplotlib修改scipy stats.probplot绘图函数,python,pandas,matplotlib,scipy,Python,Pandas,Matplotlib,Scipy,我不是matplotlib的专家,所以我很难设置scipy统计数据的参数 我的代码获取一个df列,遍历这些列,并尝试使用stats.probplot函数绘制列的值。这是我的代码: plt.figure(figsize=(10,5)) for col in model_predictions.columns: res = stats.probplot(df[col]), plot=plt) plt.legend = col plt.show() 这会生成我想要的图表,但很难阅读(

我不是matplotlib的专家,所以我很难设置scipy统计数据的参数

我的代码获取一个df列,遍历这些列,并尝试使用stats.probplot函数绘制列的值。这是我的代码:

plt.figure(figsize=(10,5))
for col in model_predictions.columns:
    res = stats.probplot(df[col]), plot=plt)
    plt.legend = col
plt.show()
这会生成我想要的图表,但很难阅读(没有图例,颜色相同)。除了将它们绘制在彼此的顶部之外,我还想以不同的颜色绘制每一行,并为每一行添加一个与列中str相等的图例。有没有办法做到这一点

我总是可以获取函数的元组输出,通过另一个新的def运行它,并将输出添加到一个新的df中(以便以后使用更多控件进行绘图);但我想知道是否有更快的方法


谢谢

您可以通过获取
stats.probplot
的输出来手动绘制它们,即:

from scipy.stats import probplot

for col in model_predictions.columns
    plt.plot(*stats.probplot(df[col])[0], label=col)
plt.legend(loc='best')
plt.show()

您可以通过获取
stats.probplot
的输出来手动绘制它们,即:

from scipy.stats import probplot

for col in model_predictions.columns
    plt.plot(*stats.probplot(df[col])[0], label=col)
plt.legend(loc='best')
plt.show()

在循环外部创建一个图形和轴,并传入轴作为
绘图的参数,应将它们全部放在同一个轴上。文档中的示例实际演示了如何使用不同的子绘图。谢谢。我知道如何使用不同的子地块。我不想要不同的子图,但都在同一个绘图中。将
plt.show
放在环井外,是的,使用单个子图有什么区别,或多个子地块?在循环外部创建一个图形和轴,并传入轴,因为
绘图的参数应使它们都位于同一个轴上。文档中的示例实际演示了如何使用不同的子地块。谢谢。我知道如何使用不同的子地块。我不想要不同的子图,但都在同一个绘图中。将
plt.show
放在环井之外,是的,使用单个子图或多个子图有什么区别?这一个几乎可以工作:plt.legend(loc='best')显示“TypeError:'str'object is not callable”修复了它。谢谢@mstainoth这一个几乎可以工作:plt.legend(loc='best')显示“TypeError:'str'对象不可调用”修复了它。谢谢你@Mstaino