[英]Different colors for each value in a ColumnSeries
我在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類:
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,它將自動為集合中的每個單獨系列指定不同的顏色。
對於這個例子,我從我的一個項目中獲取了一個片段,它添加了多個系列,並有一個單獨的List,其中包含所有系列名稱。 這將循環並將每個系列添加到集合中,並從列表中添加系列數據和系列名稱。
實時圖表齒輪示例:
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 = 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顏色是為集合中的每個系列預設的,但是可以修改這些默認顏色。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.