📄 nonlinearpolynomial.aspx
字号:
<%@ Page Language="C#" Debug="true" Description="dotnetCHARTING Component" %>
<%@ Register TagPrefix="dotnet" Namespace="dotnetCHARTING" Assembly="dotnetCHARTING"%>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Drawing2D" %>
<%@ Import Namespace="dotnetCHARTING"%>
<HTML>
<HEAD>
<TITLE>.netCHARTING Forecasting Sample</TITLE>
<script runat="server">
void Page_Load(Object sender,EventArgs e)
{
// This sample demonstrates the use of NonLinear Forecasting model in order to
// find the function of best fit. The data used for which the fuctions are fit is a set
// of data which represents a FX exchange rate over a given period of time.
// The Forecast Chart
ForecastChart.Title="Exchange";
ForecastChart.TempDirectory="temp";
ForecastChart.Debug=true;
ForecastChart.Size = "1000x800";
ForecastChart.LegendBox.Template ="%icon %name";
ForecastChart.YAxis.ScaleRange.ValueLow = 220;
//ForecastChart.XAxis.Scale = Scale.Normal;
// The Forecast data
DataEngine de = new DataEngine ();
de.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;data source=" + Server.MapPath("../../database/chartsample.mdb");
de.DateGrouping = TimeInterval.Days;
de.StartDate = new DateTime(1983,1,3,0,0,0);
de.EndDate = new DateTime(1984,12,10,23,59,59);
de.SqlStatement= @"SELECT ID, Value AS q FROM Exchange WHERE Data >= #STARTDATE# AND Data <= #ENDDATE# ORDER BY Data ";
//Add a series
SeriesCollection scForecast = de.GetSeries ();
ForecastChart.SeriesCollection.Add (scForecast);
scForecast[0].Name = "Exchange";
scForecast[0].Type = SeriesType.Spline;
/*
* Takes off the marker off the line and spline series.
*/
ForecastChart.DefaultSeries.DefaultElement.Marker = new ElementMarker (ElementMarkerType.None);
ForecastChart.ChartAreaLayout.Mode = ChartAreaLayoutMode.Vertical;
// Generate a series of standard deviation for the given points
Series deviation = new Series();
for (int i = 0; i < scForecast[0].Elements.Count; i++ )
{
Element el = new Element();
el.XValue = scForecast[0].Elements[i].XValue;
el.YValue = 0.0000000001;
deviation.Elements.Add(el);
}
// Note that this line is necessary in order to clear the function basis set by previous
// example.
//
ForecastEngine.Options.Reset();
// Set the first model function
//
// The first basis element: a1*x^a1` + a2*x^a2` + a3*x^a3`(1)
ForecastEngine.Options.AddSumOfNonLinearPowerTerms(new double[]{1,1,1}, new double[]{0,1,2});
// Generate a new series which will draw the best fitline according with the model function which we just set
Series nonLinearModel1 = new Series();
nonLinearModel1 = ForecastEngine.Advanced.NonLinearModel(scForecast[0], deviation,
new double[] {100.0, 0.0, 1.0, 1.0, 0.001, 2.0},
new bool[] {true, true, true, true, true, true});
nonLinearModel1.Name = "2nd Degree Polynomial";
nonLinearModel1.Type = SeriesType.Spline;
//The next two lines display on to the chart the function used to fit the curve
nonLinearModel1.Elements[230].SmartLabel.Text = "Function 1: %Function";
nonLinearModel1.Elements[230].ShowValue = true;
ForecastChart.SeriesCollection.Add(nonLinearModel1);
}
</script>
</HEAD>
<BODY>
<DIV align="center">
<dotnet:Chart id="ForecastChart" runat="server"/>
</dotnet:Chart>
</DIV>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -