windowsforms-114060-controls-and-libraries-chart-control-examples-creating-charts-providing-data-how-to-colorize-charts-using-the-color-object-colorizer.md
To use the Color Object Colorizer, do the following:
Create a ColorObjectColorizer object and assign it to the SeriesViewBase.Colorizer property. Additional configuration is not required.
Note
This colorizer is used by default.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
using DevExpress.XtraCharts;
namespace ColorObjectColorizerExample {
public partial class Form1 : Form {
const string filepath = "..\\..\\Data\\GDP.xml";
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
#region #BarSeries
// Create and customize a bar series.
Series barSeries = new Series() {
DataSource = LoadData(filepath),
ArgumentDataMember = "Country",
ColorDataMember = "NationalColor",
View = new SideBySideBarSeriesView()
};
barSeries.View.Colorizer = new ColorObjectColorizer();
barSeries.ValueDataMembers.AddRange(new string[] { "Product" });
#endregion #BarSeries
// Add the series to the ChartControl's Series collection.
chartControl1.Series.Add(barSeries);
// Show a title for the values axis.
((XYDiagram)chartControl1.Diagram).AxisY.Title.Text = "GDP per capita, $";
((XYDiagram)chartControl1.Diagram).AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
}
#region #DataLoad
class HpiPoint {
public string Country { get; set; }
public double Product { get; set; }
public string NationalColor { get; set; }
}
// Loads data from an XML data source.
static List<HpiPoint> LoadData(string filepath) {
XDocument doc = XDocument.Load(filepath);
List<HpiPoint> points = new List<HpiPoint>();
foreach (XElement element in doc.Element("G20HPIs").Elements("CountryStatistics")) {
points.Add(new HpiPoint() {
Country = element.Element("Country").Value,
Product = Convert.ToDouble(element.Element("Product").Value),
NationalColor = element.Element("NationalColor").Value
});
}
return points;
}
#endregion #DataLoad
}
}
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Xml.Linq
Imports DevExpress.XtraCharts
Namespace ColorObjectColorizerExample
Public Partial Class Form1
Inherits Form
Const filepath As String = "..\..\Data\GDP.xml"
Public Sub New()
InitializeComponent()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
#Region "#BarSeries"
' Create and customize a bar series.
Dim barSeries As Series = New Series() With {.DataSource = LoadData(filepath), .ArgumentDataMember = "Country", .ColorDataMember = "NationalColor", .View = New SideBySideBarSeriesView()}
barSeries.View.Colorizer = New ColorObjectColorizer()
barSeries.ValueDataMembers.AddRange(New String() {"Product"})
#End Region ' #BarSeries
' Add the series to the ChartControl's Series collection.
chartControl1.Series.Add(barSeries)
' Show a title for the values axis.
CType(chartControl1.Diagram, XYDiagram).AxisY.Title.Text = "GDP per capita, $"
CType(chartControl1.Diagram, XYDiagram).AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True
End Sub
#Region "#DataLoad"
Private Class HpiPoint
Public Property Country As String
Public Property Product As Double
Public Property NationalColor As String
End Class
' Loads data from an XML data source.
Private Shared Function LoadData(ByVal filepath As String) As List(Of HpiPoint)
Dim doc As XDocument = XDocument.Load(filepath)
Dim points As List(Of HpiPoint) = New List(Of HpiPoint)()
For Each element As XElement In doc.Element("G20HPIs").Elements("CountryStatistics")
points.Add(New HpiPoint() With {.Country = element.Element("Country").Value, .Product = Convert.ToDouble(element.Element("Product").Value), .NationalColor = element.Element("NationalColor").Value})
Next
Return points
End Function
#End Region ' #DataLoad
End Class
End Namespace