\begin{figure*}[t]
    \centering
<<fig=TRUE,height=2>>=
    comparisons <- positions
    comparisons <- comparisons[comparisons$latest,]
    comparisons <- comparisons[comparisons$frm,]
    comparisons <- comparisons[comparisons$evaluator %in% c('CorpusEvaluator', 'LinearEvaluator.nocoverage'),]
    comparisons <- melt(comparisons, id.vars=c('project', 'bug_number', 'bug_id', 'evaluator'), measure.vars=c('position'))
    comparisons <- ddply(comparisons, .(project, evaluator), function(x) data.frame(value=x$value, display_order=order(order(x$value, x$bug_number))))
    comparisons$project <- format_name(comparisons$project)
    comparisons$evaluator <- format_name(comparisons$evaluator)
    fig <- ggplot(comparisons, aes(display_order, value, linetype=evaluator)) +
        geom_line(size=0.3) +
        scale_y_log10() +
        scale_linetype_manual(values=c('dashed', 'solid')) +
        facet_grid(. ~ project, scales='free') +
        labs(x='', y='FRM (Log)') +
        theme(axis.text=element_text(colour='black'),
              axis.text.x=element_text(angle=90),
              legend.position='right',
              legend.title=element_blank(),
              panel.border=element_rect(colour='black', fill=NA),
              panel.margin = unit(0, 'inches'),
              plot.margin = unit(c(0,0,0,0), 'inches')
        )
    print(fig)
@
    \caption{Position of FRM using \corpus (solid) and \combined (dashed). Each point on x-axis is a single bug, but position does not correspond to bug ID. Each approach is sorted individually: bug 1 for \corpus is not necessarily the same bug as bug 1 for \combined.}
    \label{fig:comparison}
\end{figure*}
