Gallery
Axis Scale Breaks
<%@ Import Namespace="System.Drawing" %>
<%@ Register TagPrefix="dotnet" Namespace="dotnetCHARTING" Assembly="dotnetCHARTING"%>
<%@ Page Language="C#" Description="dotnetCHARTING Component" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>.netCHARTING Sample</title>
<script runat="server">
void Page_Load(Object sender,EventArgs e)
{
// Demonstrates using automatic scale breaks with numeric and time axes.
Chart.Type = ChartType.Combo;//Horizontal;
Chart.Width = 600;
Chart.Height = 350;
Chart.TempDirectory = "temp";
Chart.Debug = true;
// *DYNAMIC DATA NOTE*
// This sample uses random data to populate the chart. To populate
// a chart with database data see the following resources:
// - Classic samples folder
// - Help File > Data Tutorials
// - Sample: features/DataEngine.aspx
// Page link related code.
string page = HttpContext.Current.Request.QueryString["page"];
if(page == null || page == "") page = "1";
if(page == "1") // Numeric, no break
{
// Add the random data.
Chart.SeriesCollection.Add(getRandomNumericData());
Chart.Title = "No Smart Scale Break";
}
else if(page == "2") // Numeric, with break
{
// Activate the automatic scale break
Chart.YAxis.SmartScaleBreak = true;
// Add the random data.
Chart.SeriesCollection.Add(getRandomNumericData());
Chart.Title = "Smart Scale Break";
}
else if(page == "3") // Time, no break
{
// Add the random data.
Chart.SeriesCollection.Add(getRandomTimeData());
Chart.Title = "Time Scale without Smart Scale Break";
}
else if(page == "4") // Time, with break
{
// Activate the automatic scale break
Chart.YAxis.SmartScaleBreak = true;
// Add the random data.
Chart.SeriesCollection.Add(getRandomTimeData());
Chart.Title = "Time Scale with Smart Scale Break";
}
}
SeriesCollection getRandomNumericData()
{
SeriesCollection SC = new SeriesCollection();
Random myR = new Random(1);
for(int a = 1; a < 5; a++)
{
Series s = new Series();
s.Name = "Series " + a;
for(int b = 1; b < 5; b++)
{
Element e = new Element();
e.Name = "Element " + b;
e.YValue = myR.Next(50);
s.Elements.Add(e);
}
SC.Add(s);
}
// Make one element very large
SC[0].Elements[2].YValue = 1000;
return SC;
}SeriesCollection getRandomTimeData()
{
SeriesCollection SC = new SeriesCollection();
Random myR = new Random(1);
for(int a = 1; a < 5; a++)
{
Series s = new Series();
s.Name = "Series " + a;
for(int b = 1; b < 5; b++)
{
DateTime dt = new DateTime(2020,1,1);
Element e = new Element();
e.Name = "Element " + b;
dt = dt.AddYears(myR.Next(0,6));
e.YDateTime = dt;
s.Elements.Add(e);
}
SC.Add(s);
}
// Make one element very large
SC[0].Elements[2].YDateTime = new DateTime(2035,2,2);
return SC;
}
</script>
</head>
<body>
<div style="text-align:center">
<a href="?page=1">Numeric Without Smart Break</a> | <a href="?page=2">Numeric With Smart Break</a> | <a href="?page=3">Time Without Smart Break</a> | <a href="?page=4">Time With Smart Break</a><br>
</div>
<div style="text-align:center"> </div>
<div style="text-align:center">
<dotnet:Chart id="Chart" runat="server" Width="568px" Height="344px"></dotnet:Chart></div>
</body>
</html>
<%@ Import Namespace="System.Drawing" %>
<%@ Register TagPrefix="dotnet" Namespace="dotnetCHARTING" Assembly="dotnetCHARTING"%>
<%@ Page Language="vb" Description="dotnetCHARTING Component" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>.netCHARTING Sample</title>
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
' Demonstrates using automatic scale breaks with numeric and time axes.
Chart.Type = ChartType.Combo 'Horizontal;
Chart.Width = 600
Chart.Height = 350
Chart.TempDirectory = "temp"
Chart.Debug = True
' *DYNAMIC DATA NOTE*
' This sample uses random data to populate the chart. To populate
' a chart with database data see the following resources:
' - Classic samples folder
' - Help File > Data Tutorials
' - Sample: features/DataEngine.aspx
' Page link related code.
Dim page As String = HttpContext.Current.Request.QueryString("page")
If page Is Nothing OrElse page = "" Then
page = "1"
End If
If page = "1" Then ' Numeric, no break
' Add the random data.
Chart.SeriesCollection.Add(getRandomNumericData())
Chart.Title = "No Smart Scale Break"
ElseIf page = "2" Then ' Numeric, with break
' Activate the automatic scale break
Chart.YAxis.SmartScaleBreak = True
' Add the random data.
Chart.SeriesCollection.Add(getRandomNumericData())
Chart.Title = "Smart Scale Break"
ElseIf page = "3" Then ' Time, no break
' Add the random data.
Chart.SeriesCollection.Add(getRandomTimeData())
Chart.Title = "Time Scale without Smart Scale Break"
ElseIf page = "4" Then ' Time, with break
' Activate the automatic scale break
Chart.YAxis.SmartScaleBreak = True
' Add the random data.
Chart.SeriesCollection.Add(getRandomTimeData())
Chart.Title = "Time Scale with Smart Scale Break"
End If
End Sub
Function getRandomNumericData() As SeriesCollection
Dim SC As SeriesCollection = New SeriesCollection()
Dim myR As Random = New Random(1)
For a As Integer = 1 To 4
Dim s As Series = New Series()
s.Name = "Series " & a
For b As Integer = 1 To 4
Dim e As Element = New Element()
e.Name = "Element " & b
e.YValue = myR.Next(50)
s.Elements.Add(e)
Next b
SC.Add(s)
Next a
' Make one element very large
SC(0).Elements(2).YValue = 1000
Return SC
End Function
Function getRandomTimeData() As SeriesCollection
Dim SC As SeriesCollection = New SeriesCollection()
Dim myR As Random = New Random(1)
For a As Integer = 1 To 4
Dim s As Series = New Series()
s.Name = "Series " & a
For b As Integer = 1 To 4
Dim dt As DateTime = New DateTime(2020,1,1)
Dim e As Element = New Element()
e.Name = "Element " & b
dt = dt.AddYears(myR.Next(0,6))
e.YDateTime = dt
s.Elements.Add(e)
Next b
SC.Add(s)
Next a
' Make one element very large
SC(0).Elements(2).YDateTime = New DateTime(2035,2,2)
Return SC
End Function
</script>
</head>
<body>
<div style="text-align:center">
<a href="?page=1">Numeric Without Smart Break</a> | <a href="?page=2">Numeric With Smart Break</a> | <a href="?page=3">Time Without Smart Break</a> | <a href="?page=4">Time With Smart Break</a><br>
</div>
<div style="text-align:center"> </div>
<div style="text-align:center">
<dotnet:Chart id="Chart" runat="server" Width="568px" Height="344px"></dotnet:Chart></div>
</body>
</html>
- Sample FilenameAxisScaleBreaks.aspx
- VersionLegacy (Pre 3.0)
- Uses DatabaseNo