C# 列系列中每个值的不同颜色

C# 列系列中每个值的不同颜色,c#,wpf,livecharts,C#,Wpf,Livecharts,我正在WPF中使用LiveCharts创建带有列的笛卡尔图表。这些值来自一个列表,该列表依次由数据库中的值填充 一切都很好,除了我希望每个栏有不同的填充。它不在乎什么颜色,只是一个随机的颜色为每个单独的列。另外,我不想为每个值创建一个新的系列,因为有太多的值 类似问题中的Mappers方法对我不起作用,因为示例会根据值的大小更改颜色。我想为每个不同的轴标签不同的颜色 这是我创建系列的代码部分: cartesianChart.Series.Add(new ColumnSeries { Ti

我正在WPF中使用LiveCharts创建带有列的笛卡尔图表。这些值来自一个列表,该列表依次由数据库中的值填充

一切都很好,除了我希望每个栏有不同的填充。它不在乎什么颜色,只是一个随机的颜色为每个单独的列。另外,我不想为每个值创建一个新的系列,因为有太多的值

类似问题中的Mappers方法对我不起作用,因为示例会根据值的大小更改颜色。我想为每个不同的轴标签不同的颜色

这是我创建系列的代码部分:

cartesianChart.Series.Add(new ColumnSeries
{
    Title = "Column Chart: ",
    Fill = Brushes.CadetBlue,
    Values = valuesList.AsChartValues(),
    DataLabels = true,
    LabelPoint = point => (point.Y).ToString(),
});
这是图表的外观:

任何想法都将不胜感激。

尝试数据点课程:

DataPoint p=new DataPoint(chart1.Series["Celler"]);
p.SetValueY(cellVoltage[cell]);
p.Label=cellname[cell];//string
p.Color=Color.FromArgb(255 - cell * 20, 255, 80cell*20);
chart1.Series["Celler"].Points.Add(p);

如果在LiveCharts中使用序列集合,它将自动为集合中的每个单独序列指定不同的颜色

对于这个例子,我从我的一个项目中提取了一个片段,它添加了多个系列,并且有一个包含所有系列名称的单独列表。这将循环并将每个系列添加到集合中,并从列表中添加系列数据和系列名称

实时图表示例:

SeriesCollection = new LiveCharts.SeriesCollection();

List<GearedValues<long>> seriesList = new List<GearedValues<long>>();

seriesList.Add(Data1.AsGearedValues().WithQuality(Quality.Low));
seriesList.Add(Data2.AsGearedValues().WithQuality(Quality.Low));

for(int i = 0; i < seriesName.Count(); ++i)
{
    SeriesCollection.Add(new GColumnSeries
    {
        Values = seriesList[i],
        Name = seriesName[i],
        Fill = System.Windows.Media.Brushes.Transparent,
        StrokeThickness = 1,
        PointGeometry = null,
        LineSmoothness = 0,
    });
}
SeriesCollection=newlivecharts.SeriesCollection();
列表系列列表=新列表();
seriesList.Add(Data1.AsGearedValues().WithQuality(Quality.Low));
seriesList.Add(Data2.AsGearedValues().WithQuality(Quality.Low));
对于(int i=0;i
标准实时图表示例

SeriesCollection = new LiveCharts.SeriesCollection();

List<ChartValues<long>> seriesList = new List<ChartValues<long>>();

seriesList.Add(Data1);
seriesList.Add(Data2);

for(int i = 0; i < seriesName.Count(); ++i)
{
    SeriesCollection.Add(new ColumnSeries
    {
        Values = seriesList[i],
        Name = seriesName[i],
        Fill = System.Windows.Media.Brushes.Transparent,
        StrokeThickness = 1,
        PointGeometry = null,
        LineSmoothness = 0,
    });
}
SeriesCollection=newlivecharts.SeriesCollection();
列表系列列表=新列表();
seriesList.Add(数据1);
seriesList.Add(数据2);
对于(int i=0;i

系列集合颜色是为集合中的每个系列预设的,但是可以修改这些默认颜色。

可能的重复颜色略有不同,但可能有助于适应您的情况