Back to Devexpress

StackedBarSeriesView Class

corelibraries-devexpress-dot-xtracharts-7c74a590.md

latest12.2 KB
Original Source

StackedBarSeriesView Class

Represents a series view of the Stacked Bar type.

Namespace : DevExpress.XtraCharts

Assembly : DevExpress.XtraCharts.v25.2.dll

NuGet Package : DevExpress.Charts

Declaration

csharp
public class StackedBarSeriesView :
    BarSeriesView,
    IStackedView
vb
Public Class StackedBarSeriesView
    Inherits BarSeriesView
    Implements IStackedView

Remarks

The StackedBarSeriesView class provides the functionality of a series view of the stacked bar type within a chart control. At the same time, the StackedBarSeriesView class serves as a base for the FullStackedBarSeriesView class.

The StackedBarSeriesView class inherits properties and methods from the base BarSeriesView class which define the common settings of bar series views.

Note that a particular view type can be defined for a series via its SeriesBase.View property.

For more information on series views of the stacked bar type please see the Stacked Bar Chart topic.

Example

This example shows how to bind a chart control to a data source and create two Stacked Bar series based on a series template.

View Example

csharp
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using DevExpress.XtraCharts;

namespace Series_StackedBarChart {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e) {

            // Create a chart and add it to the form:
            ChartControl chart = new ChartControl();
            chart.Dock = DockStyle.Fill;
            this.Controls.Add(chart);

            // Bind the chart to a data source:
            chart.DataSource = DataPoint.GetDataPoints();
            chart.SeriesTemplate.ChangeView(ViewType.StackedBar);
            chart.SeriesTemplate.SeriesDataMember = "Company";
            chart.SeriesTemplate.SetDataMembers("Product", "Income");

            // Enable series point labels, specify their text pattern and position:
            chart.SeriesTemplate.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
            chart.SeriesTemplate.Label.TextPattern = "${V}M";
            ((BarSeriesLabel)chart.SeriesTemplate.Label).Position = BarSeriesLabelPosition.Center;

            // Customize series view settings (for example, bar width):
            StackedBarSeriesView view = (StackedBarSeriesView)chart.SeriesTemplate.View;
            view.BarWidth = 0.8;

            // Disable minor tickmarks on the x-axis:
            XYDiagram diagram = (XYDiagram)chart.Diagram;
            diagram.AxisX.Tickmarks.MinorVisible = false;

            // Add a chart title:
            chart.Titles.Add(new ChartTitle { Text = "Sales by Products" });

            // Specify legend settings:
            chart.Legend.MarkerMode = LegendMarkerMode.CheckBoxAndMarker;
            chart.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;
            chart.Legend.AlignmentVertical = LegendAlignmentVertical.TopOutside;

        }

        public class DataPoint {
            public string Product { get; set; }
            public double Income { get; set; }
            public string Company { get; set; }
            public DataPoint(string product, double income, string company) {
                this.Product = product;
                this.Income = income;
                this.Company = company;
            }
            public static List<DataPoint> GetDataPoints() {
                List<DataPoint> data = new List<DataPoint> {
                new DataPoint("Camera", 34.96, "DevAV North"),
                new DataPoint("Camcorder", 56.26, "DevAV North"),
                new DataPoint("Flash", 45.982, "DevAV North"),
                new DataPoint("Smartphone", 67.14, "DevAV North"),
                new DataPoint("Smart Watch", 51.23, "DevAV North"),
                new DataPoint("Television", 57.443, "DevAV North"),
                new DataPoint("Home Audio", 45.83, "DevAV North"),
                new DataPoint("Headphone", 51.23, "DevAV North"),

                new DataPoint("Camera", 56.48, "DevAV South"),
                new DataPoint("Camcorder", 35.123, "DevAV South"),
                new DataPoint("Flash", 36.16, "DevAV South"),
                new DataPoint("Smartphone", 39.1, "DevAV South"),
                new DataPoint("Smart Watch", 34.6, "DevAV South"),
                new DataPoint("Television", 56.16, "DevAV South"),
                new DataPoint("Home Audio", 35.38, "DevAV South"),
                new DataPoint("Headphone", 58.1 , "DevAV South")};
                return data;
            }
        }
    }
}
vb
Imports System
Imports System.Collections.Generic
Imports System.Windows.Forms
Imports DevExpress.XtraCharts

Namespace Series_StackedBarChart

    Public Partial Class Form1
        Inherits Form

        Public Sub New()
            InitializeComponent()
        End Sub

        Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
            ' Create a chart and add it to the form:
            Dim chart As ChartControl = New ChartControl()
            chart.Dock = DockStyle.Fill
            Me.Controls.Add(chart)
            ' Bind the chart to a data source:
            chart.DataSource = DataPoint.GetDataPoints()
            chart.SeriesTemplate.ChangeView(ViewType.StackedBar)
            chart.SeriesTemplate.SeriesDataMember = "Company"
            chart.SeriesTemplate.SetDataMembers("Product", "Income")
            ' Enable series point labels, specify their text pattern and position:
            chart.SeriesTemplate.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True
            chart.SeriesTemplate.Label.TextPattern = "${V}M"
            CType(chart.SeriesTemplate.Label, BarSeriesLabel).Position = BarSeriesLabelPosition.Center
            ' Customize series view settings (for example, bar width):
            Dim view As StackedBarSeriesView = CType(chart.SeriesTemplate.View, StackedBarSeriesView)
            view.BarWidth = 0.8
            ' Disable minor tickmarks on the x-axis:
            Dim diagram As XYDiagram = CType(chart.Diagram, XYDiagram)
            diagram.AxisX.Tickmarks.MinorVisible = False
            ' Add a chart title:
            chart.Titles.Add(New ChartTitle With {.Text = "Sales by Products"})
            ' Specify legend settings:
            chart.Legend.MarkerMode = LegendMarkerMode.CheckBoxAndMarker
            chart.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center
            chart.Legend.AlignmentVertical = LegendAlignmentVertical.TopOutside
        End Sub

        Public Class DataPoint

            Public Property Product As String

            Public Property Income As Double

            Public Property Company As String

            Public Sub New(ByVal product As String, ByVal income As Double, ByVal company As String)
                Me.Product = product
                Me.Income = income
                Me.Company = company
            End Sub

            Public Shared Function GetDataPoints() As List(Of DataPoint)
                Dim data As List(Of DataPoint) = New List(Of DataPoint) From {New DataPoint("Camera", 34.96, "DevAV North"), New DataPoint("Camcorder", 56.26, "DevAV North"), New DataPoint("Flash", 45.982, "DevAV North"), New DataPoint("Smartphone", 67.14, "DevAV North"), New DataPoint("Smart Watch", 51.23, "DevAV North"), New DataPoint("Television", 57.443, "DevAV North"), New DataPoint("Home Audio", 45.83, "DevAV North"), New DataPoint("Headphone", 51.23, "DevAV North"), New DataPoint("Camera", 56.48, "DevAV South"), New DataPoint("Camcorder", 35.123, "DevAV South"), New DataPoint("Flash", 36.16, "DevAV South"), New DataPoint("Smartphone", 39.1, "DevAV South"), New DataPoint("Smart Watch", 34.6, "DevAV South"), New DataPoint("Television", 56.16, "DevAV South"), New DataPoint("Home Audio", 35.38, "DevAV South"), New DataPoint("Headphone", 58.1, "DevAV South")}
                Return data
            End Function
        End Class
    End Class
End Namespace

Note

If you want to bind individual series to a data source, refer to the following help topic for more information: Specify Series Data Members.

Implements

IXtraSerializable

IXYSeriesView2D

IXtraSupportDeserializeCollectionItem

ISupportTransparency

Inheritance

Show 12 items

Object ChartElement SeriesViewBase XYDiagram2DSeriesViewBase XYDiagramSeriesViewBase SeriesViewColorEachSupportBase BarSeriesView StackedBarSeriesView FullStackedBarSeriesView

SideBySideStackedBarSeriesView

WaterfallSeriesView

SideBySideFullStackedBarSeriesView

See Also

StackedBarSeriesView Members

BarSeriesView

DevExpress.XtraCharts Namespace