Gallery
Tia Split Name
<%@ Page Language="C#" Description="dotnetCHARTING Component" %>
<%@ Register TagPrefix="dotnet" Namespace="dotnetCHARTING" Assembly="dotnetCHARTING"%>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Drawing2D" %>
<script runat="server">
void Page_Load(Object sender,EventArgs e)
{
// Demonstrates splitting a single series into multiple series based on element's name.
SetChart(Chart);
SetChart(Chart1);
SetChart(Chart2);
Chart.Title = "Original Data";
Chart.XAxis.Scale = Scale.Time;
Chart.LegendBox.DefaultEntry.Value = "%Sum";
SeriesCollection mySC = getRandomData();
Chart.SeriesCollection.Add(mySC); //Original Data
Chart.TitleBox.Position = TitleBoxPosition.FullWithLegend;
//Group the data with year by months
Chart1.DefaultElement.DefaultSubValue.Marker.Visible = false;
Chart1.DefaultElement.DefaultSubValue.Type = SubValueType.Marker;
Chart1.DefaultElement.DefaultSubValue.Marker.Type = ElementMarkerType.None;
Chart1.ChartArea.Label.Text = "Grouping the original series by using TimeIntervalAdvanced\nobject. The elements are grouped with\nyear by months.";
Series splits = mySC[0].SplitRegroupCalculate(TimeIntervalAdvanced.Year,TimeIntervalAdvanced.Month,Calculation.Sum,"MMM",true);
Chart1.SeriesCollection.Add(splits);
Chart1.LegendBox.Visible = false;
//Split the previous series based on original element's name.
Chart2.ChartArea.Label.Text = "Splitting the previous series by the original element's name.\n(Element subvalue's name)";
Chart2.TitleBox.Position = TitleBoxPosition.FullWithLegend;
SeriesCollection mySC2 = splits.SplitByName();
//SplitByName with parameters.
//SeriesCollection mySC2 = splits.SplitByName("3",LimitMode.Bottom,true,"All others");
Chart2.DefaultElement.DefaultSubValue.Marker.Visible = false;
Chart2.DefaultElement.DefaultSubValue.Type = SubValueType.Marker;
Chart2.DefaultElement.DefaultSubValue.Marker.Type = ElementMarkerType.None;
Chart2.SeriesCollection.Add(mySC2);
}
void SetChart(Chart c)
{
c.Type = ChartType.Combo;
c.Size = "600x350";
c.TempDirectory = "temp";
c.Debug = true;
}
SeriesCollection getRandomData()
{
string [] names = {"John","David", "Mary", "Carlson", "Sam", "Mark"};
SeriesCollection SC = new SeriesCollection();
Random myR = new Random(1);
DateTime dt = new DateTime(2022,1,1);
for(int a = 1; a < 2; a++)
{
Series s = new Series();
s.Name = "Series " + a.ToString();
for(int b = 1; b < 365; b++)
{
Element e = new Element();
e.Name = names[myR.Next(0,5)];
e.YValue = myR.Next(50);
e.XDateTime = dt = dt.AddDays(1);
s.Elements.Add(e);
}
SC.Add(s);
}
return SC;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>.netCHARTING Sample</title> </head>
<body>
<div align="center">
<dotnet:Chart id="Chart" runat="server"/>
<dotnet:Chart id="Chart1" runat="server"/>
<dotnet:Chart id="Chart2" runat="server"/>
</div>
</body>
</html>
<%@ Page Language="vb" Description="dotnetCHARTING Component" %>
<%@ Register TagPrefix="dotnet" Namespace="dotnetCHARTING" Assembly="dotnetCHARTING"%>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Drawing2D" %>
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
' Demonstrates splitting a single series into multiple series based on element's name.
SetChart_Renamed(Chart)
SetChart_Renamed(Chart1)
SetChart_Renamed(Chart2)
Chart.Title = "Original Data"
Chart.XAxis.Scale = Scale.Time
Chart.LegendBox.DefaultEntry.Value = "%Sum"
Dim mySC As SeriesCollection = getRandomData()
Chart.SeriesCollection.Add(mySC) 'Original Data
Chart.TitleBox.Position = TitleBoxPosition.FullWithLegend
'Group the data with year by months
Chart1.DefaultElement.DefaultSubValue.Marker.Visible = False
Chart1.DefaultElement.DefaultSubValue.Type = SubValueType.Marker
Chart1.DefaultElement.DefaultSubValue.Marker.Type = ElementMarkerType.None
Chart1.ChartArea.Label.Text = "Grouping the original series by using TimeIntervalAdvanced" & Constants.vbLf & "object. The elements are grouped with" & Constants.vbLf & "year by months."
Dim splits As Series = mySC(0).SplitRegroupCalculate(TimeIntervalAdvanced.Year,TimeIntervalAdvanced.Month,Calculation.Sum,"MMM",True)
Chart1.SeriesCollection.Add(splits)
Chart1.LegendBox.Visible = False
'Split the previous series based on original element's name.
Chart2.ChartArea.Label.Text = "Splitting the previous series by the original element's name." & Constants.vbLf & "(Element subvalue's name)"
Chart2.TitleBox.Position = TitleBoxPosition.FullWithLegend
Dim mySC2 As SeriesCollection = splits.SplitByName()
'SplitByName with parameters.
'SeriesCollection mySC2 = splits.SplitByName("3",LimitMode.Bottom,true,"All others");
Chart2.DefaultElement.DefaultSubValue.Marker.Visible = False
Chart2.DefaultElement.DefaultSubValue.Type = SubValueType.Marker
Chart2.DefaultElement.DefaultSubValue.Marker.Type = ElementMarkerType.None
Chart2.SeriesCollection.Add(mySC2)
End Sub
Sub SetChart_Renamed(ByVal c As Chart)
c.Type = ChartType.Combo
c.Size = "600x350"
c.TempDirectory = "temp"
c.Debug = True
End Sub
Function getRandomData() As SeriesCollection
Dim names As String() = {"John","David", "Mary", "Carlson", "Sam", "Mark"}
Dim SC As SeriesCollection = New SeriesCollection()
Dim myR As Random = New Random(1)
Dim dt As DateTime = New DateTime(2022,1,1)
For a As Integer = 1 To 1
Dim s As Series = New Series()
s.Name = "Series " & a.ToString()
For b As Integer = 1 To 364
Dim e As Element = New Element()
e.Name = names(myR.Next(0,5))
e.YValue = myR.Next(50)
dt = dt.AddDays(1)
e.XDateTime = dt
s.Elements.Add(e)
Next b
SC.Add(s)
Next a
Return SC
End Function
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>.netCHARTING Sample</title> </head>
<body>
<div align="center">
<dotnet:Chart id="Chart" runat="server"/>
<dotnet:Chart id="Chart1" runat="server"/>
<dotnet:Chart id="Chart2" runat="server"/>
</div>
</body>
</html>
- Sample FilenameTiaSplitName.aspx
- Version4.3
- Uses DatabaseNo