X Axis Vs. Category Axis

Possible Usage Scenarios

There are different types of X axes. While the Y axis is a Value type axis, the X axis can be a Category type axis or a Value type axis. Using a Value axis, the data is treated as continuously varying numerical data, and the marker is placed at a point along the axis which varies according to its numerical value. Using a Category axis, the data is treated as a sequence of non-numerical text labels, and the marker is placed at a point along the axis according to its position in the sequence. The sample below illustrates the difference between Value and Category Axes. Our sample data is shown in the sample Table file below. The first column contains our X axis data, which can be treated as Categories or as Values. Note that the numbers are not equally spaced, nor do they even appear in numerical order.

todo:image_alt_text

Handle X and Category axis like Microsoft Excel

We will display this data on two types of chart,the first chart is XY (Scatter) chart X as Value Axis, the second chart is line chart X as Category Axis.

todo:image_alt_text

Sample Code

// Create an instance of Workbook
Workbook workbook = new Workbook();
// Access the first worksheet.
Worksheet worksheet = workbook.Worksheets[0];
// Put the sample values used in charts
worksheet.Cells["A2"].PutValue(1);
worksheet.Cells["A3"].PutValue(3);
worksheet.Cells["A4"].PutValue(2.5);
worksheet.Cells["A5"].PutValue(3.5);
worksheet.Cells["B1"].PutValue("Cats");
worksheet.Cells["C1"].PutValue("Dogs");
worksheet.Cells["D1"].PutValue("Fishes");
worksheet.Cells["B2"].PutValue(7);
worksheet.Cells["B3"].PutValue(6);
worksheet.Cells["B4"].PutValue(5);
worksheet.Cells["B5"].PutValue(4);
worksheet.Cells["C2"].PutValue(7);
worksheet.Cells["C3"].PutValue(5);
worksheet.Cells["C4"].PutValue(4);
worksheet.Cells["C5"].PutValue(3);
worksheet.Cells["D2"].PutValue(8);
worksheet.Cells["D3"].PutValue(7);
worksheet.Cells["D4"].PutValue(3);
worksheet.Cells["D5"].PutValue(2);
//Create Line Chart: X as Category Axis
int pieIdx = worksheet.Charts.Add(ChartType.LineWithDataMarkers, 6, 15, 20, 21);
// Retrieve the Chart object
Chart chart = worksheet.Charts[pieIdx];
// Add Series
chart.NSeries.Add("B2:D5", true);
// Set the category data
chart.NSeries.CategoryData = "=Sheet1!$A$2:$A$5";
// Set the first series mame
chart.NSeries[0].Name = "Cats";
// Set the second series mame
chart.NSeries[1].Name = "Dogs";
// Set the third series mame
chart.NSeries[2].Name = "Fishes";
// Set the Legend at the bottom of the chart area
chart.Legend.Position = LegendPositionType.Bottom;
// Fill the PlotArea area with nothing
chart.PlotArea.Area.FillFormat.FillType = FillType.None;
// Create XY (Scatter) Chart: X as Value Axis
pieIdx = worksheet.Charts.Add(ChartType.ScatterConnectedByLinesWithDataMarker, 6, 6, 20, 12);
// Retrieve the Chart object
chart = worksheet.Charts[pieIdx];
// Add Series
chart.NSeries.Add("B2:D5", true);
// Set X values for series
chart.NSeries[0].XValues = "{1,3,2.5,3.5}";
chart.NSeries[1].XValues = "{1,3,2.5,3.5}";
chart.NSeries[2].XValues = "{1,3,2.5,3.5}";
// Set the first series mame
chart.NSeries[0].Name = "Cats";
// Set the second series mame
chart.NSeries[1].Name = "Dogs";
// Set the third series mame
chart.NSeries[2].Name = "Fishes";
// Set the Legend at the bottom of the chart area
chart.Legend.Position = LegendPositionType.Bottom;
// Fill the PlotArea area with nothing
chart.PlotArea.Area.FillFormat.FillType = FillType.None;
// Save the Excel file
workbook.Save("XAxis.xlsx");