Hello.
I need to plot a two-way interaction (5 levels X 3) with error bars.
The x.factor will be the five-levels var and the trace.factor will be
the three level var.
I was able to find functions that draw error bars, but still couldn't
find a way to draw an interaction plot that looks like what is common
in psychological (and related) journals: the lines (three in my need)
are plotted in parallel and to avoid overlapping of the error bars a
small jitter is added.
I was able to make plotmeans() {from gplots} draw the interaction but
with the lines plotted side by side (not parallel), resulting in three
panes of one line each. When I tried manually super-imposing (looping
a draw of one line for each level in the trace.factor) I got the
overall look, but the error bars overlap and are hard to distinguish.
Another attempt I made was with ci.plot() {from pda}. Inputting an
aov() model resulted in a perfect plot of interaction but which is
very limited to handle - I was unable to add a legend, change symbols
etc.
Does anybody knows if there is a way to manipulate either of the above
functions more then what I was able to?
Is there another function to draw interaction plots with error bars?
Thanks for any help or comment.
dror
Plotting an interaction with error bars
5 messages · Jim Lemon, Dror D Lev
On 11/03/2009 10:15 PM, Dror D Lev wrote:
Hello.
I need to plot a two-way interaction (5 levels X 3) with error bars.
The x.factor will be the five-levels var and the trace.factor will be
the three level var.
I was able to find functions that draw error bars, but still couldn't
find a way to draw an interaction plot that looks like what is common
in psychological (and related) journals: the lines (three in my need)
are plotted in parallel and to avoid overlapping of the error bars a
small jitter is added.
I was able to make plotmeans() {from gplots} draw the interaction but
with the lines plotted side by side (not parallel), resulting in three
panes of one line each. When I tried manually super-imposing (looping
a draw of one line for each level in the trace.factor) I got the
overall look, but the error bars overlap and are hard to distinguish.
Another attempt I made was with ci.plot() {from pda}. Inputting an
aov() model resulted in a perfect plot of interaction but which is
very limited to handle - I was unable to add a legend, change symbols
etc.
Does anybody knows if there is a way to manipulate either of the above
functions more then what I was able to?
Is there another function to draw interaction plots with error bars?
Hi Dror, I think you want to offset the points in a group along the x axis so that the points and error bars don't overlap. Try introducing an x offset of maybe 0.1 in your try with plotmeans. To see an example of what this looks like and how it is done, have a look at brkdn.plot in the plotrix package. Jim
Thank you Jim. brkdn.plot() seems to be just the function I need. Still, I wonder if there are lists of labels of the different measures of central tendency (mct argument) and measures of dispersion (md)? dror -----------------------------
On Wed, Nov 4, 2009 at 7:41 AM, Jim Lemon <jim at bitwrit.com.au> wrote:
On 11/03/2009 10:15 PM, Dror D Lev wrote:
Hello.
I need to plot a two-way interaction (5 levels X 3) with error bars.
The x.factor will be the five-levels var and the trace.factor will be
the three level var.
I was able to find functions that draw error bars, but still couldn't
find a way to draw an interaction plot that looks like what is common
in psychological (and related) journals: the lines (three in my need)
are plotted in parallel and to avoid overlapping of the error bars a
small jitter is added.
I was able to make plotmeans() {from gplots} draw the interaction but
with the lines plotted side by side (not parallel), resulting in three
panes of one line each. When I tried manually super-imposing (looping
a draw of one line for each level in the trace.factor) I got the
overall look, but the error bars overlap and are hard to distinguish.
Another attempt I made was with ci.plot() {from pda}. Inputting an
aov() model resulted in a perfect plot of interaction but which is
very limited to handle - I was unable to add a legend, change symbols
etc.
Does anybody knows if there is a way to manipulate either of the above
functions more then what I was able to?
Is there another function to draw interaction plots with error bars?
Hi Dror, I think you want to offset the points in a group along the x axis so that the points and error bars don't overlap. Try introducing an x offset of maybe 0.1 in your try with plotmeans. To see an example of what this looks like and how it is done, have a look at brkdn.plot in the plotrix package. Jim
On 11/04/2009 06:36 PM, Dror D Lev wrote:
Thank you Jim. brkdn.plot() seems to be just the function I need. Still, I wonder if there are lists of labels of the different measures of central tendency (mct argument) and measures of dispersion (md)?
Hi Dror, With brkdn.plot (and several other functions in plotrix) you can use any existing measure or even roll your own. The only limitation is that the function has to return a numeric value and must accept an "na.rm" argument. Jim
Indeed, that seems very convenient. Thanks for your work and for the help. dror -------------------------
On Wed, Nov 4, 2009 at 12:17 PM, Jim Lemon <jim at bitwrit.com.au> wrote:
On 11/04/2009 06:36 PM, Dror D Lev wrote:
Thank you Jim. brkdn.plot() seems to be just the function I need. Still, I wonder if there are lists of labels of the different measures of central tendency (mct argument) and measures of dispersion (md)?
Hi Dror, With brkdn.plot (and several other functions in plotrix) you can use any existing measure or even roll your own. The only limitation is that the function has to return a numeric value and must accept an "na.rm" argument. Jim