chart.js - 在 ChartJs.Blazor 中向 ChartJsLineChart 发送数据
问题描述
我在 ChartJs.Blazor nuget 中使用 ChartJsLineChart,我一直在向 ChartJsLineChart 发送数据。
所有的例子,包括这个
使用 TimeTuple 作为向数据集添加数据的一种方式
_WeightDataSet = new LineDataset<TimeTuple<int>>
{
BackgroundColor = ColorUtil.FromDrawingColor(System.Drawing.Color.White),
BorderColor = ColorUtil.FromDrawingColor(System.Drawing.Color.Red),
Label = "Weight per Day",
Fill = false,
BorderWidth = 2,
PointRadius = 2,
PointBorderWidth = 2,
SteppedLine = SteppedLine.False,
Hidden = false
};
我想知道 TimeTuple 的替代品是什么。我尝试使用元组,但结果是一个空白图表,即。没有无法识别的 YValues。
解决方案
您可以使用 ChartJs.Blazor 支持的任何引用类型向图表添加数据。我确定了与折线图一起使用的 3 种主要数据类型。
1) 如果您只想沿 x 轴和 y 轴使用 (double/int) 值类型,则可以使用 ChartJs.Blazor.ChartJS.Common.Point 数据类型。例如
_WeightDataSet = new LineDataset<ChartJs.Blazor.ChartJS.Common.Point>
{
BackgroundColor = ColorUtil.FromDrawingColor(System.Drawing.Color.White),
BorderColor = ColorUtil.FromDrawingColor(System.Drawing.Color.Red),
Label = "Weight per Day",
Fill = false,
BorderWidth = 2,
PointRadius = 2,
PointBorderWidth = 2,
SteppedLine = SteppedLine.False,
Hidden = false
};
您可能还必须将配置中的 xAxes 配置为 LinearCartesianAxis 对象才能使其正常工作。
2)如果您希望 x 轴具有时间值,而 y 轴具有双精度值,那么您需要使用您引用的示例中提到的 TimeTuple。您可能还必须将配置中的 xAxes 对象配置为 TimeAxis 对象。
3) 如果您希望沿 y 轴针对 x 轴上的字符串标签绘制 double(或 int)值,则需要使用 ChartJs.Blazor.ChartJS.Common.Wrappers 命名空间中提供的 Wrappers 并将 xAxes 配置为配置中的 CategoryAxis 对象。托管在https://github.com/LearnC0de/BlazorAppLineChart/blob/master/BlazorAppLineChart/BlazorAppLineChart/Pages/LineChart.razor上的代码中提供了一个示例
推荐阅读
- sql - 在 Rails 中执行 sql 查询时如何访问嵌套的哈希值?
- python - 如何使用 Python async/await 同时运行两个任务?
- javascript - 如何在`beforeunload`事件的刷新页面上向服务器发送请求?
- vimeo - Vimeo API - 获取哪个用户是主持人的所有频道?
- sql - 查询在企业版 postgres 中有效,但在社区版中无效
- react-native - WebStorm 使用 react-native-web 导入错误?
- java - 在 Apache Tomcat 中,是否可以有多个访问日志文件,由连接器过滤?
- .net-core - 在管道中构建 .NETCORE 1.0 api 应用程序
- tensorflow - 未能在 Tensorflow 2.1.0 中为 tf.data 应用矢量化映射
- javascript - 每天在特定时间之间运行一个节点调度程序