diff --git a/src/fr/inrialpes/exmo/align/cli/GroupOutput.java b/src/fr/inrialpes/exmo/align/cli/GroupOutput.java index b14c2eb66712f50f759d53b6551531f393aa3d00..f6ff522138a93a014dcece0db93d800fda9475f8 100644 --- a/src/fr/inrialpes/exmo/align/cli/GroupOutput.java +++ b/src/fr/inrialpes/exmo/align/cli/GroupOutput.java @@ -54,7 +54,8 @@ import gnu.getopt.Getopt; import fr.inrialpes.exmo.align.parser.AlignmentParser; -/** A basic class for synthesizing the alignment results of an algorithm with regard to the ontology characteristics as a colored module. +/** A basic class for synthesizing the alignment results of an algorithm with + * regard to the ontology characteristics as a colored module. * * These modules are however computed on averaging the precision recall/graphs * on test directories instead of recording the actual precision recall graphs @@ -69,6 +70,8 @@ import fr.inrialpes.exmo.align.parser.AlignmentParser; * <pre> * -o filename --output=filename * -c --color + * -v --value + * -e --labels * -d debug --debug=level * -l list of compared algorithms * -t output --type=output: xml/tex/html/ascii @@ -114,6 +117,8 @@ public class GroupOutput { String outFile = null; String type = "tex"; String color = null; + boolean labels = false; + boolean value = false; int debug = 0; PrintWriter output = null; @@ -123,7 +128,7 @@ public class GroupOutput { } public void run(String[] args) throws Exception { - LongOpt[] longopts = new LongOpt[8]; + LongOpt[] longopts = new LongOpt[9]; longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'); longopts[1] = new LongOpt("output", LongOpt.REQUIRED_ARGUMENT, null, 'o'); @@ -131,8 +136,10 @@ public class GroupOutput { longopts[3] = new LongOpt("type", LongOpt.REQUIRED_ARGUMENT, null, 't'); longopts[4] = new LongOpt("debug", LongOpt.OPTIONAL_ARGUMENT, null, 'd'); longopts[6] = new LongOpt("list", LongOpt.REQUIRED_ARGUMENT, null, 'l'); + longopts[7] = new LongOpt("value", LongOpt.NO_ARGUMENT, null, 'v'); + longopts[8] = new LongOpt("labels", LongOpt.NO_ARGUMENT, null, 'e'); - Getopt g = new Getopt("", args, "ho:c::d::l:t:", longopts); + Getopt g = new Getopt("", args, "hveo:c::d::l:t:", longopts); int c; String arg; @@ -141,6 +148,12 @@ public class GroupOutput { case 'h' : usage(); return; + case 'v' : + value = true; + break; + case 'e' : + labels = true; + break; case 'o' : /* Write output here */ outFile = g.getOptarg(); @@ -194,7 +207,6 @@ public class GroupOutput { if ( type.equals("tex") ) { output.println("\\documentclass[11pt]{book}"); output.println(); - output.println("\\usepackage{figureflt}"); output.println("\\usepackage{pgf}"); output.println("\\usepackage{tikz}"); output.println("\\usepackage{pgflibraryshapes}"); @@ -280,38 +292,55 @@ public class GroupOutput { public void printPGFTeX( String algo, double[] cells ){ output.println("\n%% Plot generated by GroupOutput of alignapi"); - output.println("\\begin{floatingigure}[r]{6.5cm}"); output.println("\\begin{figure}[!h]"); output.println("\\begin{center}"); output.println("\\begin{tikzpicture}"); - output.println("\\draw (-.5,2.) node[anchor=east] {labels};"); - output.println("\\draw (0,2.) node[diamond,minimum size=.5cm"+colorFormat(cells[11])+"] {"+stringFormat(cells[11])+"}; % l"); - output.println("\\draw (0,1.) node[diamond,minimum size=.5cm"+colorFormat(cells[5])+"] {"+stringFormat(cells[5])+"}; % lp"); - output.println("\\draw (0.5,1.5) node[diamond,minimum size=.5cm"+colorFormat(cells[2])+"] {"+stringFormat(cells[2])+"}; % lip"); - output.println("\\draw (1.,2.) node[diamond,minimum size=.5cm"+colorFormat(cells[6])+"] {"+stringFormat(cells[6])+"}; %li"); - output.println(""); - output.println("\\draw (-.5,0.) node[anchor=east] {properties};"); - output.println("\\draw (-0.5,-0.5) node[diamond,minimum size=.5cm"+colorFormat(cells[9])+"] {"+stringFormat(cells[9])+"}; % ip"); - output.println("\\draw (0,0) node[diamond,minimum size=.5cm"+colorFormat(cells[12])+"] {"+stringFormat(cells[12])+"}; %p"); - output.println("\\draw (.5,.5) node[diamond,minimum size=.5cm"+colorFormat(cells[3])+"] {"+stringFormat(cells[3])+"}; % lph"); - output.println("\\draw (1.,1.) node[diamond,minimum size=.5cm"+colorFormat(cells[0])+"] {"+stringFormat(cells[0])+"}; % liph"); - output.println("\\draw (1.5,1.5) node[diamond,minimum size=.5cm"+colorFormat(cells[4])+"] {"+stringFormat(cells[4])+"}; %hil"); - output.println("\\draw (2.,2.) node[diamond,minimum size=.5cm"+colorFormat(cells[14])+"] {"+stringFormat(cells[14])+"}; %i"); - output.println("\\draw (2.5,2.0) node[anchor=west] {instances};"); - output.println(""); - output.println("\\draw (2.,1.) node[diamond,minimum size=.5cm"+colorFormat(cells[10])+"] {"+stringFormat(cells[10])+"}; % hi"); - output.println("\\draw (1.5,0.5) node[diamond,minimum size=.5cm"+colorFormat(cells[1])+"] {"+stringFormat(cells[1])+"}; % phi"); - output.println("\\draw (1.,0) node[diamond,minimum size=.5cm"+colorFormat(cells[8])+"] {"+stringFormat(cells[8])+"}; % ph"); - output.println("\\draw (2.,0) node[diamond,minimum size=.5cm"+colorFormat(cells[13])+"] {"+stringFormat(cells[13])+"}; % h"); - output.println("\\draw (2.5,0.) node[anchor=west] {hierarchy};"); - output.println("\\draw (2.5,-0.5) node[diamond,minimum size=.5cm"+colorFormat(cells[7])+"] {"+stringFormat(cells[7])+"}; % hl"); + output.println("\\begin{scope}[minimum size=1cm]"); + if ( labels ) { + output.println("\\draw (-.5,2.) node[anchor=east] {labels};"); + output.println("\\draw (2.5,0.) node[anchor=west] {hierarchy};"); + output.println("\\draw (-.5,0.) node[anchor=east] {properties};"); + output.println("\\draw (2.5,2.0) node[anchor=west] {instances};"); + } + output.println("\\draw (0,2.) node[diamond"+colorFormat(cells[11])+"] {}; % l"); + if (value) output.println("\\draw (0,2.) node {"+stringFormat(cells[11])+"}; % l"); + output.println("\\draw (0,1.) node[diamond"+colorFormat(cells[5])+"] {}; % lp"); + if (value) output.println("\\draw (0,1.) node {"+stringFormat(cells[5])+"}; % lp"); + output.println("\\draw (0.5,1.5) node[diamond"+colorFormat(cells[2])+"] {}; % lip"); + if (value) output.println("\\draw (0.5,1.5) node {"+stringFormat(cells[2])+"}; % lip"); + output.println("\\draw (1.,2.) node[diamond"+colorFormat(cells[6])+"] {}; %li"); + if (value) output.println("\\draw (1.,2.) node {"+stringFormat(cells[6])+"}; %li"); + output.println("\\draw (-0.5,-0.5) node[diamond"+colorFormat(cells[9])+"] {}; % ip"); + if (value) output.println("\\draw (-0.5,-0.5) node {"+stringFormat(cells[9])+"}; % ip"); + output.println("\\draw (0,0) node[diamond"+colorFormat(cells[12])+"] {}; %p"); + if (value) output.println("\\draw (0,0) node {"+stringFormat(cells[12])+"}; %p"); + output.println("\\draw (.5,.5) node[diamond"+colorFormat(cells[3])+"] {}; % lph"); + if (value) output.println("\\draw (.5,.5) node {"+stringFormat(cells[3])+"}; % lph"); + output.println("\\draw (1.,1.) node[diamond"+colorFormat(cells[0])+"] {}; % liph"); + if (value) output.println("\\draw (1.,1.) node {"+stringFormat(cells[0])+"}; % liph"); + output.println("\\draw (1.5,1.5) node[diamond"+colorFormat(cells[4])+"] {}; %hil"); + if (value) output.println("\\draw (1.5,1.5) node {"+stringFormat(cells[4])+"}; %hil"); + output.println("\\draw (2.,2.) node[diamond"+colorFormat(cells[14])+"] {}; %i"); + if (value) output.println("\\draw (2.,2.) node {"+stringFormat(cells[14])+"}; %i"); + output.println("\\draw (2.,1.) node[diamond"+colorFormat(cells[10])+"] {}; % hi"); + if (value) output.println("\\draw (2.,1.) node {"+stringFormat(cells[10])+"}; % hi"); + output.println("\\draw (1.5,0.5) node[diamond"+colorFormat(cells[1])+"] {}; % phi"); + if (value) output.println("\\draw (1.5,0.5) node {"+stringFormat(cells[1])+"}; % phi"); + output.println("\\draw (1.,0) node[diamond"+colorFormat(cells[8])+"] {}; % ph"); + if (value) output.println("\\draw (1.,0) node {"+stringFormat(cells[8])+"}; % ph"); + output.println("\\draw (2.,0) node[diamond"+colorFormat(cells[13])+"] {}; % h"); + if (value) output.println("\\draw (2.,0) node {"+stringFormat(cells[13])+"}; % h"); + output.println("\\draw (2.5,-0.5) node[diamond"+colorFormat(cells[7])+"] {}; % hl"); + if (value) output.println("\\draw (2.5,-0.5) node {"+stringFormat(cells[7])+"}; % hl"); + + output.println("\\end{scope}"); output.println("\\end{tikzpicture} "); output.println("\\caption{"+algo+" evaluation on F-measure (the darkest the best).}\\label{fig:diag"+algo+"}"); output.println("\\end{center}"); - output.println("\\end{floatingfigure}"); + output.println("\\end{figure}"); } public void printTSV( double[][] result ) {