c# - c#实时图表线不同颜色
问题描述
我有两个时间序列,第一个是每天的价格,第二个是某天的价格。我想画一条线,但我想画出某一天的价格。我找到了那个链接,但我不明白怎么做。
链接:https ://github.com/Live-Charts/Live-Charts/issues/162#issuecomment-232700608
我的代码:
var dayConfig = Mappers.Xy < ChartModel > ().X(dayModel =>dayModel.DateTime.Ticks).Y(dayModel =>dayModel.Value);
SeriesCollection = new SeriesCollection(dayConfig) {
new LineSeries {
Title = hisse1,
Values = ChartModelList.AsChartValues(),
},
};
Formatter = value =>new DateTime((long) value).ToString("dd.MM.yyyy");
DataContext = this;
解决方案
您可以在 XAML 或数据模型中定义系列颜色。
XAML
<wpf:CartesianChart Series="{Binding SeriesCollection}>
<wpf:CartesianChart.SeriesColors>
<wpf:ColorsCollection>
<Color>Yellow</Color>
<Color>Green</Color>
</wpf:ColorsCollection>
</wpf:CartesianChart.SeriesColors>
</wpf:CartesianChart>
C#
您通常可以设置 、 和 等属性Fill
来自Stroke
定义StrokeThickness
系列StrokeDashArray
的颜色。
// Draw a sine
var chartValues = new ChartValues<Point>();
for (int x = 0; x < 361; x++)
{
var point = new Point() {X = x, Y = Math.Sin(x * Math.PI / 180)};
chartValues.Add(point);
}
this.SeriesCollection = new SeriesCollection
{
// Set the line series color directly on the series object
new LineSeries
{
Title = "Yellow Series",
Values = chartValues,
Fill = Brushes.Yellow,
Stroke = Brushes.Blue
},
// Or use a Mapper which offers more flexibility e.g. allowing conditional coloring
new LineSeries
{
Title = "Mixed Color Series",
Configuration = new CartesianMapper<Point>()
.X(point => point.X)
.Y(point => point.Y)
.Stroke(point => point.X > 50 ? Brushes.Red : Brushes.LightGreen)
.Fill(point => point.X > 50 ? Brushes.Red : Brushes.LightGreen),
Values = chartValues
}
};
推荐阅读
- json - 如何在 CakePHP 4 中扩展 JSON 视图以始终返回相同的模式
- javascript - 第一次部署到 Heroku,遇到问题
- type-conversion - Remix 中的显式类型转换
- python - 使用 numpy 生成截断的对数正态分布
- c# - 使用 Linq 进行 repo 模式的 EF Core 6 扩展方法
- mysql - MySQL:错误 1045 - 如何设置正确的规则?
- python - 我如何抓取两个具有相同名称的不同类元素?
- m4 - 在 m4 中定义控制结构
- node.js - 由节点js中的xlsx npm生成的表格标题中的键值
- angular - 无法读取 Angular 11 中未定义的属性“推送”