You've already forked lazarus-ccr
fpspreadsheet: Show regression formula in chart with number format specified in file.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9059 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
program regressionchart_write_demo;
|
program regressionchart_write_demo;
|
||||||
|
|
||||||
{.$DEFINE DARK_MODE}
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
uses
|
uses
|
||||||
SysUtils,
|
SysUtils,
|
||||||
@ -16,7 +16,7 @@ var
|
|||||||
begin
|
begin
|
||||||
book := TsWorkbook.Create;
|
book := TsWorkbook.Create;
|
||||||
try
|
try
|
||||||
// worksheet
|
// Worksheet
|
||||||
sheet := book.AddWorksheet('regression_test');
|
sheet := book.AddWorksheet('regression_test');
|
||||||
|
|
||||||
// Enter data
|
// Enter data
|
||||||
@ -28,10 +28,10 @@ begin
|
|||||||
sheet.WriteNumber(5, 0, 2.5); sheet.WriteNumber(5, 1, 2.45);
|
sheet.WriteNumber(5, 0, 2.5); sheet.WriteNumber(5, 1, 2.45);
|
||||||
sheet.WriteNumber(6, 0, 3.1); sheet.WriteNumber(6, 1, 3.3);
|
sheet.WriteNumber(6, 0, 3.1); sheet.WriteNumber(6, 1, 3.3);
|
||||||
sheet.WriteNumber(7, 0, 5.2); sheet.WriteNumber(7, 1, 4.9);
|
sheet.WriteNumber(7, 0, 5.2); sheet.WriteNumber(7, 1, 4.9);
|
||||||
sheet.WriteNumber(8, 0, 6.8); sheet.WriteNumber(8, 1, 7.1); // sheet.WriteChartColor(8, 2, $FF8080);
|
sheet.WriteNumber(8, 0, 6.8); sheet.WriteNumber(8, 1, 7.1);
|
||||||
|
|
||||||
// Create chart: left/top in cell D4, 120 mm x 100 mm
|
// Create chart: left/top in cell D4, 150 mm x 100 mm
|
||||||
ch := book.AddChart(sheet, 2, 3, 120, 100);
|
ch := book.AddChart(sheet, 2, 3, 150, 100);
|
||||||
|
|
||||||
// Chart properties
|
// Chart properties
|
||||||
ch.Border.Style := clsNoLine;
|
ch.Border.Style := clsNoLine;
|
||||||
@ -54,7 +54,7 @@ begin
|
|||||||
ser.Regression.Line.Color := scRed;
|
ser.Regression.Line.Color := scRed;
|
||||||
ser.Regression.Line.Style := clsDash;
|
ser.Regression.Line.Style := clsDash;
|
||||||
ser.Regression.ForceYIntercept := true; // not used by logarithmic, power
|
ser.Regression.ForceYIntercept := true; // not used by logarithmic, power
|
||||||
ser.Regression.YInterceptValue := 1.0;
|
ser.Regression.YInterceptValue := 1.0; // dto.
|
||||||
ser.Regression.PolynomialDegree := 2;
|
ser.Regression.PolynomialDegree := 2;
|
||||||
ser.Regression.DisplayEquation := true;
|
ser.Regression.DisplayEquation := true;
|
||||||
ser.Regression.DisplayRSquare := true;
|
ser.Regression.DisplayRSquare := true;
|
||||||
|
@ -244,6 +244,8 @@ begin
|
|||||||
APen.Style := psDashDotDot
|
APen.Style := psDashDotDot
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ Converts an fps format string (e.g. '0.000') to a format string usable in
|
||||||
|
the Format() command (e.g. '%.3f') }
|
||||||
function Convert_NumFormatStr_to_FormatStr(ANumFormat: String): String;
|
function Convert_NumFormatStr_to_FormatStr(ANumFormat: String): String;
|
||||||
var
|
var
|
||||||
isPercent: Boolean = false;
|
isPercent: Boolean = false;
|
||||||
@ -1899,7 +1901,7 @@ begin
|
|||||||
s := s + ser.EquationText.
|
s := s + ser.EquationText.
|
||||||
X(AWorkbookSeries.Regression.Equation.XName).
|
X(AWorkbookSeries.Regression.Equation.XName).
|
||||||
Y(AWorkbookSeries.Regression.Equation.YName).
|
Y(AWorkbookSeries.Regression.Equation.YName).
|
||||||
NumFormat('%.3f'). // to do: convert from AWorkbookSeries.Regression.Equation.NumberFormat
|
NumFormat(Convert_NumFormatStr_to_FormatStr(AWorkbookSeries.Regression.Equation.NumberFormat)).
|
||||||
DecimalSeparator('.').
|
DecimalSeparator('.').
|
||||||
TextFormat(tfHtml).
|
TextFormat(tfHtml).
|
||||||
Get;
|
Get;
|
||||||
|
Reference in New Issue
Block a user