我使用 LiveCharts2 热图将数据放置到网格上,以便用户可以直观地查看和比较彼此相邻的值,就像它们在现实生活中出现的那样。
有时颜色不够,所以我想将鼠标悬停在该点上以获得准确的信息。
当我尝试这样做时,我得到了我想要的所有信息,但格式错误。
如您所见,这使得读取单元格值变得困难,因为它靠近 y 轴。
理想情况下我会这样:
但即使只是
我也会很高兴或
我尝试学习格式化,但没有成功。我也许可以使轴值正确格式化,但我永远无法将单元格值单独放入工具提示中。
听起来这应该是一件简单的事情。希望有人能帮忙。
我从代码中删除了所有失败的内容,这就是现在的样子:
Xaml:
<lvc:CartesianChart x:Name="Chart"
Series="{Binding Series}"
XAxes="{Binding XAxes}"
YAxes="{Binding YAxes}">
</lvc:CartesianChart>
C#:
ObservableCollection<WeightedPoint> oc = new ObservableCollection<WeightedPoint>(wp);
Series = new ObservableCollection<ISeries>
{
new HeatSeries<WeightedPoint>
{
HeatMap = new[]
{
new SKColor(0, 0, 0).AsLvcColor(),
new SKColor(0, 0, 255).AsLvcColor(),
new SKColor(255, 255, 0).AsLvcColor(),
new SKColor(255, 0, 0).AsLvcColor(),
},
ColorStops = new[]
{
0,
0.5,
0.9,
1
},
Values = new ObservableCollection<WeightedPoint>(wp),
}
};
XAxes = new Axis[]
{
new Axis
{
Labels = dg.LegendW.Select(x => x.ToString()).ToList(),
}
};
YAxes = new Axis[]
{
new Axis
{
Labels = dg.LegendH.Select(x => x.ToString()).ToList()
}
};
你可以这样做:
// …
new HeatSeries<WeightedPoint> {
// …
YToolTipLabelFormatter = (point) => $"{point.Model?.Weight}",
// …
}
// …
具有 x 和 y 值的其他选项:
YToolTipLabelFormatter = (point) => $"Value: {point.Model?.Weight}\r\nX: {point.Model?.X}\r\nY: {point.Model?.Y}",