This class introduces the Keys property that allows specifying keys associated with colors, and the KeyProvider property, that allows specifying how to obtain the key for SeriesBase.ColorDataMember values.
Use the SeriesViewBase.Colorizer property to assign the colorizer to a series view.
Refer to the Series Point Colorizer topic for more information about colorizers.

Example
To configure and use the Key-Color colorizer, perform the following steps.
Form1.cs |
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Xml.Linq;
using DevExpress.XtraCharts;
namespace KeyColorColorizerExample {
public partial class Form1 : Form {
const string filepath = "..//..//Data//GDP.xml";
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
#region #BarSeries
Series barSeries = new Series() {
DataSource = LoadData(filepath),
ArgumentDataMember = "Country",
ColorDataMember = "Region",
View = new SideBySideBarSeriesView()
};
barSeries.View.Colorizer = CreateColorizer();
barSeries.ValueDataMembers.AddRange(new string[] { "Product" });
#endregion #BarSeries
chartControl1.Series.Add(barSeries);
((XYDiagram)chartControl1.Diagram).AxisY.Title.Text = "GDP per capita, $";
((XYDiagram)chartControl1.Diagram).AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
}
#region #KeyColorColorier
ChartColorizerBase CreateColorizer() {
KeyColorColorizer colorizer = new KeyColorColorizer() {
PaletteName = "Apex"
};
colorizer.Keys.Add("Africa");
colorizer.Keys.Add("America");
colorizer.Keys.Add("Asia");
colorizer.Keys.Add("Australia");
colorizer.Keys.Add("Europe");
return colorizer;
}
#endregion #KeyColorColorier
#region #DataLoad
class HpiPoint {
public string Country { get; set; }
public double Product { get; set; }
public string Region { get; set; }
}
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),
Region = element.Element("Region").Value
});
}
return points;
}
#endregion #DataLoad
}
}
|
GDP.xml (C |
<?xml version="1.0" encoding="utf-8" ?>
<G20HPIs>
<CountryStatistics>
<Country>Argentina</Country>
<Region>America</Region>
<Product>16011.6728032264</Product>
</CountryStatistics>
<CountryStatistics>
<Country>Australia</Country>
<Region>Australia</Region>
<Product>38159.6336533223</Product>
</CountryStatistics>
<CountryStatistics>
<Country>Brazil</Country>
<Region>America</Region>
<Product>11210.3908053823</Product>
</CountryStatistics>
<CountryStatistics>
<Country>Canada</Country>
<Region>America</Region>
<Product>39050.1673163719</Product>
</CountryStatistics>
<CountryStatistics>
<Country>China</Country>
<Region>Asia</Region>
<Product>7599</Product>
</CountryStatistics>
<CountryStatistics>
<Country>France</Country>
<Region>Europe</Region>
<Product>34123.1966249035</Product>
</CountryStatistics>
<CountryStatistics>
<Country>Germany</Country>
<Region>Europe</Region>
<Product>37402.2677660974</Product>
</CountryStatistics>
<CountryStatistics>
<Country>India</Country>
<Region>Asia</Region>
<Product>3425.4489267524</Product>
</CountryStatistics>
<CountryStatistics>
<Country>Indonesia</Country>
<Region>Asia</Region>
<Product>4325.2533282173</Product>
</CountryStatistics>
<CountryStatistics>
<Country>Italy</Country>
<Region>Europe</Region>
<Product>31954.1751781228</Product>
</CountryStatistics>
<CountryStatistics>
<Country>Japan</Country>
<Region>Asia</Region>
<Product>33732.8682226596</Product>
</CountryStatistics>
<CountryStatistics>
<Country>Mexico</Country>
<Region>America</Region>
<Product>14563.884253986</Product>
</CountryStatistics>
<CountryStatistics>
<Country>Russia</Country>
<Region>Europe</Region>
<Product>19891.3528339013</Product>
</CountryStatistics>
<CountryStatistics>
<Country>Saudi Arabia</Country>
<Region>Asia</Region>
<Product>22713.4852913284</Product>
</CountryStatistics>
<CountryStatistics>
<Country>South Africa</Country>
<Region>Africa</Region>
<Product>10565.1840563081</Product>
</CountryStatistics>
<CountryStatistics>
<Country>South Korea</Country>
<Region>Asia</Region>
<Product>29101.0711400706</Product>
</CountryStatistics>
<CountryStatistics>
<Country>Turkey</Country>
<Region>Africa</Region>
<Product>15686.860167575</Product>
</CountryStatistics>
<CountryStatistics>
<Country>United Kingdom</Country>
<Region>Europe</Region>
<Product>35686.1997705521</Product>
</CountryStatistics>
<CountryStatistics>
<Country>Spain</Country>
<Region>Europe</Region>
<Product>32230.3585974199</Product>
</CountryStatistics>
<CountryStatistics>
<Country>USA</Country>
<Region>America</Region>
<Product>47153.0094273427</Product>
</CountryStatistics>
</G20HPIs>
|
Form1.vb |
Imports System
Imports System.Collections.Generic
Imports System.Windows.Forms
Imports System.Xml.Linq
Imports DevExpress.XtraCharts
Namespace KeyColorColorizerExample
Partial Public Class Form1
Inherits Form
Private 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) Handles Me.Load
' #Region "#BarSeries"
' Create and customize a bar series.
Dim barSeries As New Series() With {
.DataSource = LoadData(filepath),
.ArgumentDataMember = "Country",
.ColorDataMember = "Region",
.View = New SideBySideBarSeriesView()
}
barSeries.View.Colorizer = CreateColorizer()
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 "#KeyColorColorier"
' Creates the Key-Color colorizer for the bar chart.
Private Function CreateColorizer() As ChartColorizerBase
Dim colorizer As New KeyColorColorizer() With {.Palett |