首页 > 其他分享 >OpenTiny HUICharts开源发布,带你了解一个简单、易上手的图表组件库

OpenTiny HUICharts开源发布,带你了解一个简单、易上手的图表组件库

时间:2024-08-09 10:42:39浏览次数:11  
标签:Month 图表 易上 HUICharts Domestics OpenTiny Abroad

摘要:目前 OpenTiny HUICharts 已经成功落地在华为内部100多个产品中,持续提升了用户的可视化体验。

本文分享自华为云社区《OpenTiny HUICharts 正式开源发布,一个简单、易上手的图表组件库》,作者: OpenTiny。

引言

大家好!

我们非常高兴地跟大家宣布,今天正式发布我们的新产品——OpenTiny HUICharts。这是一款前端 Web 可视化图表库,其基础图表功能构建于 ECharts 之上,而高阶图表则采用了新的底层技术,以满足更广泛的数据可视化需求。

OpenTiny HUICharts 集成了自适应、性能提升、数据状态管理、无障碍能力、刻度优化、刻度均分等特性。这些特性帮助我们解决了许多内部业务场景中的问题。我们追求的目标是让图表的使用变得更加简单、直观且易于上手。

为什么要做 OpenTiny HUICharts

OpenTiny HUICharts 的诞生源于我们的内部业务需求。在处理数据可视化时,我们常常遇到两个主要问题:工具过于复杂和定制性不足。许多现有的图表工具虽然功能强大,但使用起来相对繁琐,需要频繁查询 API 文档。在处理大量复杂数据时,我们发现市场上现有的解决方案无法完全满足我们对数据可视化工具的要求。此外,我们还意识到公司内许多部门使用的图表工具缺乏统一的规范和主题样式,这造成了视觉上的不一致。

综合上面的问题,我们自主研发了 OpenTiny HUICharts。目前支持原生使用,也支持 Vue 框架封装组件,参考 OpenTiny Vue 组件库。 我们支持基础图表如线形图、柱状图、圆盘图、雷达图等,这些图基于 Echarts 图表库,但我们简化了相关 API 的使用,使其更加统一和规范。而针对复杂场景,我们开发了一系列的高阶图表,使用时可按需引用,不依赖其他库。

对我们来说,OpenTiny HUICharts 不仅仅是一个产品,更是我们对数据可视化的一种全新探索。目前 OpenTiny HUICharts 已经成功落地在公司内部100多个产品中,持续提升了用户的可视化体验。

组件总览

  • 基础图表:线形图、面积图、柱状图、圆盘图、雷达图、地图、桑基图等等。
  • 复杂图表:甘特图、流程图、河流图、蜂窝图、波纹图、梯田图、时间轴、组织关系图、雪花图、里程碑图。使用时要按需引用,不依赖其他库。

特性

1、一键换肤 & 主题定制

2、可定制化响应式图表

3、生命周期

4、低代码开发

5、内置数据状态提示

6、复杂可视化图表

一键换肤 & 主题定制

基于 Design Token 样式变量,可依据产品和品牌多样化的视觉需求实现灵活的样式定义与主题切换。用户可通过当前页面右侧的操作面板调整相应样式变量(如:字体、间距、各类颜色等)实时预览定制效果。

可定制化响应式图表

传统的图表库自适应通常是简单的图元缩小,OpenTiny HUICharts 提供了可定制化图表响应式能力,并提供语法糖。

如用户可根据容器宽度,自行抉择隐藏非必要的图元属性,如图例、坐标轴等。

生命周期

为了让开发者能够更灵活、更高效地管理图表的创建、更新和销毁过程,OpenTiny HUICharts 图表库提供了生命周期功能,能够在组件的初始化,更新,销毁这几个阶段进行调用回调。

例如,当您要刷新已经渲染完毕的图表时,如果您想刷新配置项和数据,可以使用:

// 新的配置项,为对象格式
let newChartOption = {...};
chartIns.refresh(newChartOption);

如果想对图表渲染完毕进行回调,可以这样:

chartIns.onRenderReady(callback);

内置数据状态提示

提供数据状态界面和调用接口,也支持用户传入自定义的图标和文本。

复杂可视化图表

OpenTiny HUICharts 提供了传统图表库不包含的复杂可视化图表组件,图表包含自研算法布局和图形绘制。

如何使用

  1. 环境准备,首先确认安装了 node,并确保 node 版本是 10.13 或以上。使用node -v命令查看 node 版本
  2. 查看组件库当前的版本 npm show @opentiny/huicharts
  3. 安装,使用 npm 安装组件库最新版本:npm install @opentiny/huicharts@latest --save

使用用例

// 引用图表库
import HuiCharts from '@opentiny/huicharts';
// 创建图表容器
<div id="main" style="width: 600px;height:400px;"></div>
// 创建图表实例
let chartIns = new HuiCharts();
// 初始化图表容器
let chartContainerDom = document.getElementById('main');
chartIns.init(chartContainerDom);
// 填入图表配置项
let chartOption = {
    theme: 'hdesign-light',
    padding: [50, 30, 50, 20],
    legend: {
        show: true,
        icon: 'line'
    },
    data: [
 { 'Month': 'Jan', 'Domestics': 33, 'Abroad': 37 },
 { 'Month': 'Feb', 'Domestics': 27, 'Abroad': 39 },
 { 'Month': 'Mar', 'Domestics': 31, 'Abroad': 20 },
 { 'Month': 'Apr', 'Domestics': 30, 'Abroad': 15 },
 { 'Month': 'May', 'Domestics': 37, 'Abroad': 13 },
 { 'Month': 'Jun', 'Domestics': 36, 'Abroad': 17 },
 { 'Month': 'Jul', 'Domestics': 42, 'Abroad': 22 },
 { 'Month': 'Aug', 'Domestics': 22, 'Abroad': 12 },
 { 'Month': 'Sep', 'Domestics': 17, 'Abroad': 30 },
 { 'Month': 'Oct', 'Domestics': 40, 'Abroad': 33 },
 { 'Month': 'Nov', 'Domestics': 42, 'Abroad': 22 },
 { 'Month': 'Dec', 'Domestics': 32, 'Abroad': 11 }
    ],
 xAxis: {
        data: 'Month',
    },
 yAxis: {
        name: 'Percentage(%)'
    }
};
// 指定使用图表类型:LineChart、AreaChart、BarChart、PieChart、GaugeChart、RadarChart、ProcessChart、BubbleChart等
// 图表类型的英文名称可以在文档左侧菜单栏看到
let chartType = 'LineChart';
chartIns.setSimpleOption(chartType, chartOption);
// 开始渲染
chartIns.render();

图表数据刷新

当您要刷新已经渲染完毕的图表时,如果您想刷新配置项和数据,可以使用:

// 新的配置项,对象格式
let newChartOption = {...};
chartIns.refresh(newChartOption);

如果您想仅仅刷新数据,可以使用:

// 新的数据,为数组格式
let newData = [...];
chartIns.refreshData(newData);

特别鸣谢

在这个项目的每一个阶段,我们都深受许多人的帮助和支持。在此,我们特别要感谢所有参与 OpenTiny HUICharts 开发和测试的团队成员,你们的努力和创意让这个产品成为可能。

感谢我们的合作伙伴,你们的专业知识和无私的建议让我们能够不断优化和改进 OpenTiny HUICharts

还要特别感谢所有参与早期测试的用户,你们宝贵的反馈帮助我们发现了许多改进的机会,让 OpenTiny HUICharts 更加完善。

最后,我们衷心感谢每一位支持我们的朋友。我们期待与大家继续携手前行,将 OpenTiny HUICharts 带到更多人的日常工作中,助力更多人高效地通过数据表达信息。

关于OpenTiny

欢迎加入 OpenTiny 开源社区。添加微信小助手:opentiny-official 一起参与交流前端技术~
OpenTiny 官网https://opentiny.design/
OpenTiny HUICharts 源码https://github.com/opentiny/tiny-charts
欢迎进入代码仓库 Star

标签:Month,图表,易上,HUICharts,Domestics,OpenTiny,Abroad
From: https://www.cnblogs.com/huaweiyun/p/18350321

相关文章

  • 如何高效使用大型语言模型 LLMs 初学者版本 简单易上手
    第一条也是最重要的一条规则是永远不要要求LLM提供你无法自己验证的信息,或让它完成你无法验证其正确性的任务。唯一例外的情况是那些无关紧要的任务,例如,让大型语言模型提供公寓装修灵感之类的是可以的。首先请看两个范例不佳示范:“使用文献综述最佳实践,总结过去十......
  • 普通人也能弄的 16 个AI搞钱副业,门槛低,易上手!
    大家好,我是灵魂画师向阳本期给大家分享的是利用AI做副业的一些方法,大家可以挑选适合自己的赛道去搞钱现在是人工智能时代,利用好AI工具,可以降低普通人做副业的门槛,同时也能提高工作效率,因此AI赚钱的副业还是挺多的,今天拿20个普通人也能尝试的AI搞钱副业分享给大家,包括......
  • 强!10.6K star,一款开源HTTP测试工具,适合新手,简单、容易上手!
    大家好,我是狂师!今天给大家推荐一款开源的HTTP测试工具:Hurl,相比curl、wget功能更强大,且更容易上手、很适用新手使用。1、项目介绍Hurl是一个使用Rust语言开发的命令行工具,它允许用户运行以简单纯文本格式定义的HTTP请求。这个工具不仅适用于获取数据,还非常适合用于测试HTTP会话......
  • 分享:vue3+OpenTiny UI+cesium 实现三维地球
    效果图使用vue3+OpenTinyUI+cesium实现三维地球node.js>=v16.0opentinyvue3ui安装指南https://opentiny.design/tiny-vue/zh-CN/os-theme/docs/installationyarnadd@opentiny/vue@3项目依赖"dependencies":{  "@opentiny/vue":"3"......
  • vim 简易上手笔记
    vim的三种模式1.命令模式当您启动Vim时,您会进入命令模式。在此模式下,您可以执行各种操作,例如移动光标、删除、复制和粘贴。常用命令:i:切换到输入模式,开始输入文本。x:删除当前光标所在处的字符。::切换到底线命令模式,在最底一行输入命令。dd:剪切当前行。yy:复制当前行......
  • 在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手
    在虚拟现实、游戏开发、影视制作等领域中,动作捕捉技术与实时渲染引擎的结合已经越来越紧密。UE作为业界领先的3D创作平台,受到了众多开发者的青睐,DSFUN-UE插件能够帮助开发者更便捷地在UE平台中利用动捕数据进行高效创作,提升项目效率。*准备事项*1、软件DSFUN-采集端软件、DSFUN-......
  • 什么是仿真软件?推荐几个简单易上手的几款CAE软件!
    什么是仿真软件?仿真软件(CAE软件)是一种用于模拟和模仿真实世界系统或过程的计算机程序。这些软件可以用来模拟物理系统、工程系统、商业流程等各种领域的系统。通过仿真软件,用户可以对系统进行实时的模拟、分析和测试,以便更好地理解系统的行为和性能,以及进行系统的优化和改进。仿真......
  • OpenTiny Vue 3.12.0 发布:文档大优化!增加水印和二维码两个新组件
    你好,我是Kagol。非常高兴跟大家宣布,2023年11月30日,OpenTinyVue发布了v3.12.0......
  • OpenTiny Vue 3.11.0 发布:增加富文本、ColorPicker等4个新组件,迎来了贡献者大爆发!
    你好,我是Kagol。非常高兴跟大家宣布,2023年10月24日,OpenTinyVue发布了v3.11.0......
  • 从0到1实现 OpenTiny 组件库跨框架技术
    本文分享自华为云社区《从0到1实现OpenTiny组件库跨框架技术》,作者:华为云社区精选。在华为云《DTSETechTalk》技术直播第44期《0基础玩转OpenTiny跨框架组件库,实现一站式前端进阶》中,华为云前端开发DTSE技术布道师莫春辉老师在本期直播中与开发者一起交流了OpenTiny组件......