[R] Plots from categorial data

Jim Lemon jim at bitwrit.com.au
Sun Jul 1 13:23:56 CEST 2007


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)

Jim



More information about the R-help mailing list