[R] Plots from categorial data
deepayan.sarkar at gmail.com
deepayan.sarkar at gmail.com
Sun Jul 1 19:21:46 CEST 2007
On 7/1/07, Jim Lemon <jim at bitwrit.com.au> wrote:
> Christoph Krammer wrote:
> > Hello everybody,
> >
> > Since my first message was caught by the spam filter, I just try to do it
> > again:
> >
> > I want to use R to generate plots from categorial data. The data contains
> > results from OCR scans over images with are preprocessed by different
> image
> > filtering techniques. A small sample data set looks as following:
> >
> >
> >>data <- read.csv("d:/tmp_da/sql_data/filter_d_tool.csv", header=T)
> >>data
> >
> > ocrtool filter_setting avg.hit.
> > 1 FineReader 2x1 0.383
> > 2 FineReader 2x2 0.488
> > 3 FineReader 3x2 0.268
> > 4 FineReader 3x3 0.198
> > 5 FineReader 4x3 0.081
> > 6 FineReader 4x4 0.056
> > 7 gocr 2x1 0.153
> > 8 gocr 2x2 0.102
> > 9 gocr 3x2 0.047
> > 10 gocr 3x3 0.052
> > 11 gocr 4x3 0.014
> > 12 gocr 4x4 0.002
> > 13 ocrad 2x1 0.085
> > 14 ocrad 2x2 0.094
> > 15 ocrad 3x2 0.045
> > 16 ocrad 3x3 0.050
> > 17 ocrad 4x3 0.025
> > 18 ocrad 4x4 0.009
> >
> >
> > I now want to draw a plot with the categories (filter_setting) as X axis,
> > and the avg_hit as Y axis. There should be lines for each ocrtool.
> >
> > But when I draw a plot, the resulting plot always contains bars, even if I
> > specify type="n".
> >
> >>plot(data$filter_setting, data$avg.hit., type="n")
> >
> >
> > When I only plot the categories, without data, there appear strange grey
> > (but empty) boxes.
> >
> >>plot(data$filter_setting, type="n")
> >
> >
> > Who do I get a clean white box to draw the different lines in?
> >
> Hi Christoph,
>
> How about this?
>
> plot(as.numeric(krammer$filter_setting[1:6]),krammer$avg_hit[1:6],
> type="b",col=2,ylim=c(0,0.5),main="OCR performance",
> xlab="Filter setting",ylab="Average hits",axes=FALSE)
> points(as.numeric(krammer$filter_setting[7:12]),krammer$avg_hit[7:12],
> type="b",col=3)
> points(as.numeric(krammer$filter_setting[13:18]),krammer$avg_hit[13:18],
> type="b",col=4)
> box()
> axis(1,at=1:6,labels=c("2x1","2x2","3x2","3x3","4x3","4x4"))
> axis(2)
And this is mostly equivalent to
with(krammer, interaction.plot(filter_setting, ocrtool, avg_hit))
or (with the original names)
with(data, interaction.plot(filter_setting, ocrtool, avg.hit.))
-Deepayan
More information about the R-help
mailing list