statsmodels.graphics.factorplots.interaction_plot
-
statsmodels.graphics.factorplots.interaction_plot(x, trace, response, func=, ax=None, plottype='b', xlabel=None, ylabel=None, colors=[], markers=[], linestyles=[], legendloc='best', legendtitle=None, **kwargs)
[source] -
Interaction plot for factor level statistics.
Note. If categorial factors are supplied levels will be internally recoded to integers. This ensures matplotlib compatiblity.
uses pandas.DataFrame to calculate an
aggregate
statistic for each level of the factor or group given bytrace
.Parameters: x : array-like
The
x
factor levels constitute the x-axis. If apandas.Series
is given its name will be used inxlabel
ifxlabel
is None.trace : array-like
The
trace
factor levels will be drawn as lines in the plot. Iftrace
is apandas.Series
its name will be used as thelegendtitle
iflegendtitle
is None.response : array-like
The reponse or dependent variable. If a
pandas.Series
is given its name will be used inylabel
ifylabel
is None.func : function
Anything accepted by
pandas.DataFrame.aggregate
. This is applied to the response variable grouped by the trace levels.plottype : str {?line?, ?scatter?, ?both?}, optional
The type of plot to return. Can be ?l?, ?s?, or ?b?
ax : axes, optional
Matplotlib axes instance
xlabel : str, optional
Label to use for
x
. Default is ?X?. Ifx
is apandas.Series
it will use the series names.ylabel : str, optional
Label to use for
response
. Default is ?func of response?. Ifresponse
is apandas.Series
it will use the series names.colors : list, optional
If given, must have length == number of levels in trace.
linestyles : list, optional
If given, must have length == number of levels in trace.
markers : list, optional
If given, must have length == number of lovels in trace
kwargs :
These will be passed to the plot command used either plot or scatter. If you want to control the overall plotting options, use kwargs.
Returns: fig : Figure
The figure given by
ax.figure
or a new instance.Examples
>>> import numpy as np >>> np.random.seed(12345) >>> weight = np.random.randint(1,4,size=60) >>> duration = np.random.randint(1,3,size=60) >>> days = np.log(np.random.randint(1,30, size=60)) >>> fig = interaction_plot(weight, duration, days, ... colors=['red','blue'], markers=['D','^'], ms=10) >>> import matplotlib.pyplot as plt >>> plt.show()
(Source code, png, hires.png, pdf)
Please login to continue.