Stat.getRLinesString C# (CSharp) Method

getRLinesString() private method

private getRLinesString ( GraphROptions gro, string fileName, Sides side ) : string
gro GraphROptions
fileName string
side Sides
return string
    private string getRLinesString(GraphROptions gro, string fileName, Sides side)
    {
        string allData = "";
        if(isRjEvolution || isRunIntervalEvolution)
            allData = convertDataToROnRjEvolution(gro, side);
        else
            allData = convertDataToR(gro, side);

        string axesStr = "";
        string ylabStr = "";
        if(side == Sides.RIGHT) {
            axesStr = " axis(4)\n";
            if(CurrentGraphData.LabelRight != "")
                ylabStr = ", ylab='" + Util.RemoveTilde(CurrentGraphData.LabelRight) + "'";
        }
        else { //ALL or LEFT
            axesStr = " axis(2)\n";
            if(CurrentGraphData.LabelLeft != "")
                ylabStr = ", ylab='" + Util.RemoveTilde(CurrentGraphData.LabelLeft) + "'";
        }

        string naString = ", na.rm = TRUE";

        string xlimString = "c(0,length(colnames(data))+1)";
        if(isRjEvolution || isRunIntervalEvolution)
            xlimString = "c(1," + rjEvolutionMaxJumps + ")";

        //TC and TF same color on rjEvo
        string colorsConversionString = "";

        string colors1="colors[1]";
        string colorsi="colors[i]";
        string colors="colors";
        bool changedPalette = false;
        if(gro.Palette == Constants.GraphPaletteBlack) {
            colors1="'black'";
            colorsi="'black'";
            colors="'black'";
            gro.Palette="gray.colors";
            changedPalette = true;
        } else if(isRjEvolution) //runIntervalEvolution doesn't have this because only has one serie
            colorsConversionString = "for(i in 2:length(colors)) if(i%%2 == 0) colors[i]=colors[i-1]\n";

        string rG = //rGraphString
           	" colors=" + gro.Palette +"(length(rownames(data)))\n" +
            colorsConversionString +
           	" plot(data[1,1:length(colnames(data))], type='b', lwd="+ gro.LineWidth +", xlim=" + xlimString + "," +
            " ylim=c(min(data" + naString +"),max(data" + naString + ")), pch=1, axes=FALSE, col="+ colors1 +", xlab=''" + ylabStr + ")\n" +
            " if(length(rownames(data))>=2) {\n" +
            " 	for(i in 2:length(rownames(data)))\n" +
           	" 		points(data[i,1:length(colnames(data))], type='b', lwd="+ gro.LineWidth +", pch=i, col="+ colorsi +")\n" +
            " }\n" +
            " axis(1, 1:length(colnames(data)), colnames(data), las=2)\n" +
            axesStr +
            " legend('" + gro.Legend +"', legend=rownames(data), pch=c(1:length(rownames(data))), cex=.7, col="+ colors +")\n";

        if(changedPalette)
            gro.Palette=Constants.GraphPaletteBlack;

        //have an unique title for both graphs
        string titStr = getTitle("Lines", "");
        if(hasTwoAxis()) {
               if(side==Sides.RIGHT)
                rG += "par(mfrow=c(1,1), new=TRUE)\n" +
                    "plot(-1, axes=FALSE, type='n', xlab='', ylab='')\n" +
                    titStr +
                    "par(mfrow=c(1,1), new=FALSE)\n";
        } else
            rG += titStr;

        return allData + rG;
    }