BlazorCharts 原生图表库开发日志 210506

前情提要
看着blazor生态没有原生charts组件,所以我就抛砖引玉试着做一个。详情可参见BlazorCharts 原生图表库开发日志 210423

项目地址:https://github.com/TimChen44/blazor-charts

行动

首先,确定一个图标,俗话说图标确定后项目就完成了一半😁,以本人的能力,只能将图表和@合并,设计出“缝合怪”作为我的图标🤣
在这里插入图片描述
接着,再确定我们组件的一些基本理念,我今后的设计尽我所能满足这些理念。

  • 使用简单
    组件库是拿来用的,所以使用方式要简单,使用方法要符合常规逻辑,争取使用时最大可能的减少对文档的依赖。

  • 功能实用
    实现一堆极少场景才会使用的图表,不如集中精力做好用的最多的那些图表。
    实现一堆极少场景才会使用的功能,不如集中精力做好用的最多的那些功能。

  • 信息直观
    使用图表的核心目的是解决表格数据显示不直观的问题,所以不论功能、布局、颜色、动画都是为了这个服务。

最后,就是付诸实施。

阶段成果

下面是一个最简单的图表示例
在这里插入图片描述
所需的配置

<BcChart Height="600" Width="800" Data="DemoData.Githubs" CategoryField="x=>x.Year.ToString()">
    <BcTitle Title="图表示例" TData="Github"></BcTitle>
    <BcAxesY TData="Github" GridLineMajor="true" GridLineMinor="true"></BcAxesY>
    <BcLegend TData="Github" BorderWidth="1" Position="LegendPosition.Bottom"></BcLegend>
    <BcColumnSeries TData="Github" ValueFunc="x=>x.Sum(y=>y.View)" Group="View"></BcColumnSeries>
    <BcColumnSeries TData="Github" ValueFunc="x=>x.Sum(y=>y.Start)" Group="Start"></BcColumnSeries>
    <BcLineSeries TData="Github" ValueFunc="x=>x.Sum(y=>y.Fork)" Group="Fork"></BcLineSeries>
</BcChart>

所需的数据

static class DemoData
{
    public static List<Github> Githubs = new List<Github>()
    {
        new Github(){Year=2017,View =2500,Start=800,Fork=400},
        new Github(){Year=2018,View =2200,Start=900,Fork=800},
        new Github(){Year=2019,View =2800,Start=1100,Fork=700},
        new Github(){Year=2020,View =2600,Start=1400,Fork=900},
    };
}

优点介绍(自吹环节)

  1. 采用标记语法进行配置,有别于Chartjs和G2Plot的配置文件更符合Blazor的风格。
  2. CategoryField是一个函数,所以可以比较灵活的设置分类。
  3. 柱状图或者折线图,亦或者其他图形,只需要根据自己的需要,任意组合搭配,显示顺序就是配置顺序,符合常规逻辑
  4. ValueFunc是一个函数,也就是说图表中的值可以在这里进行自定义汇总,比如合计,平均,计数等
  5. 采用强类型有助于避免编码过程中手误造成的各类问题

次回预告

Charts组件用过很多,但是自己制作一个还是第一次,没啥经验,过程中比较坎坷,次回我就把我遇到的坑拿出来晒晒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值