我有以下代码:
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.graphics.factorplots import interaction_plot
a = np.array( [ item for item in [ 'a1', 'a2', 'a3' ] for _ in range(30) ] )
b = np.array( [ item for _ in range(45) for item in [ 'b1', 'b2' ] ] )
np.random.seed(123)
mse = np.ravel( np.column_stack( (np.random.normal(-1, 1, size=45 ), np.random.normal(2, 0.5, size=45 ) )) )
f = interaction_plot( a, b, mse )
其给出:
有没有一种简单的方法可以直接为每个点添加误差线?
f.axes.errorbar()?
还是直接用matplotlib绘制图更好?
2条答案
按热度按时间gijlo24d1#
好吧,看起来这个功能是not yet directly supported,所以我决定直接修改源代码,创建一个新的功能。我把它贴在这里,也许它可以为某人所用。
有了这个,我可以得到这个情节:
**注意:**代码也可以使用函数
t_ci()
来聚合误差条,我是这样定义的:同样,我只是稍微调整了一下函数以适应我当前的需要。原始函数可以在这里找到:)
7bsow1i62#
使用axes.errorbar()可能是实现误差线的一个不太可靠的方法,但这是我的解决方法。这样做会在图表中添加另一条线,然后您需要将其与交互图的线对齐。