c# 对比bitmap是否相等_技术图文:如何利用 C#+Echarts 绘制 Smoothed Line Chart?

背景

这几天在做一个电力系统的软件,其中需要绘制 Bar Simple,解决这个问题之后,我写了第一篇关于 C# 封装 Echarts 的图文:

  • 如何利用 C# + Echarts 绘制 Bar Simple?

该图文详细介绍了 C#Echarts 封装为自定义控件的过程,封装了 Echarts 的 xAxis、yAxis、series 和 option 结构。

7a57663c21e30b7a724337698cc1ee86.png

Simple Bar

之后,这个软件系统需要绘制 “堆叠条形图”,解决这个问题之后,我又写了第二篇关于 C# 封装 Echarts 的图文:

  • 如何利用 C# + Echarts 绘制「堆叠条形图」?

该图文对前面的代码进行了扩展,增加了对 tooltip、legend、grid 等结构的封装。

e0398e540d030b42334a24e6f4dc085c.png

堆叠条形图

今天,总结的是如何通过离散点拟合一条光滑的函数曲线。

6f15a587c36c58e432a754c636e8456e.png

Smoothed Line Chart


技术分析

首先,我们对比一下百度提供的 “Bar Simple” 和 “Smoothed Line Chart” 示例代码

Bar Simple 的代码

option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: [120, 200, 150, 80, 70, 110, 130], type: 'bar' }]};

Smoothed Line Chart 的代码

option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: [820, 932, 901, 934, 1290, 1330, 1320], type: 'line', smooth: true }]};

通过两段代码的对比,会发现主要的区别在 series 属性上。

柱状图 type:'bar',折线图 type:'line',如果想使其光滑则需要设置 smooth:true。

由于我们已经封装了 Echarts 的 xAxis、yAxis 和 series 属性,这里只需要扩展一下 SeriesItem 结构就能满足需求。


代码实现

扩展 SeriesItem 结构:

public class SeriesItem{ ///  /// 每个系列通过 type 决定自己的图表类型。 ///  public string type { get; set; } = "line"; ///  /// 是否平滑曲线显示。 ///  public bool smooth { get; set; } = false; ///  /// 系列中的数据内容数组 ///  public List data { get; set; }}

总结

扩展之后,我们针对以上例子的客户端代码如下:

加载 x 轴的数据

private List GetXAxisData(){ List reslt = new List { "Mon
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值