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;
}