HarmonyOS鸿蒙Next开发可以集成ECharts组件吗?或者其它第三方的图表组件
HarmonyOS鸿蒙Next开发可以集成ECharts组件吗?或者其它第三方的图表组件 鸿蒙开发可以集成ECharts组件吗?或者其它第三方的图表组件,比如TradingView。。。
【背景知识】
- mpchart是一个包含各种类型图表的图表库,主要用于业务数据汇总,例如销售数据走势图、股价走势图等场景中使用。方便开发者快速实现图表UI。mpchart主要包括线形图、柱状图、饼状图、蜡烛图、气泡图、雷达图、瀑布图等自定义图表库。
- Canvas:画布组件,用于自定义绘制图形
- chart:图表组件,用于呈现线形图、柱状图、量规图界面
【问题现象】 HarmonyOS上如何实现类似echarts的效果,有无相关实现方案。
【解决方案】
- 可以使用图标库MpChart,其中包含各种类型的图表可供选择。
- 使用Canvas画布绘制图表。详情请参考基于Canvas实现数据可视化。
- HarmonyOS中提供了兼容JS的类Web开发范式,可以使用组件Chart来实现复杂图表组件。
更多关于HarmonyOS鸿蒙Next开发可以集成ECharts组件吗?或者其它第三方的图表组件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
ECharts集成方案
WebView嵌入方案
将ECharts通过本地HTML文件引入,使用Web组件渲染
// 加载本地HTML文件
Web({ src: $rawfile('echarts.html'), controller: this.controller })
.width('100%')
.height('100%')
.onPageEnd(e => {
// 注入图表配置
this.controller.runJavaScript(`setOption(${JSON.stringify(option)})`);
})
第三方可以使用 McCharts
ohpm install [@mcui](/user/mcui)/mccharts
地址
[https://ohpm.openharmony.cn/#/cn/detail/@mcui%2Fmccharts](https://ohpm.openharmony.cn/#/cn/detail/@mcui%2Fmccharts)
试试Webview组件方案
通过加载本地或远程HTML页面实现ECharts图表展示:
- 创建包含ECharts的HTML文件,引入官方JS库并配置图表容器
- 使用Web组件加载该HTML文件:
build() {
Web({ src: $rawfile('echart_demo.html'), controller: this.webController })
.width('100%')
.height(400)
}
- 通过runJavaScript方法动态更新数据:
this.webController.runJavaScript(`initChart(${JSON.stringify(data)})`)
【背景知识】
[@ohos/mpchart](https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fmpchart):mpchart是一个包含各种类型图表的图表库,主要用于业务数据汇总,例如销售数据走势图,股价走势图等场景中使用,方便开发者快速实现图表UI,mpchart主要包括线形图、柱状图、饼状图、蜡烛图、气泡图、雷达图、瀑布图等自定义图表库。
【参考方案】 可参考宝宝身高体重记录曲线示例,通过[@ohos/mpchart](https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fmpchart)绘制折线图(走势图)效果。
- 创建测量数据类GrowthRecord,使用[@ohos/mpchart](https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fmpchart)构建随时间变化的折线图模型LineCharts。
- 在主页面TabContent组件中分别调用LineCharts模型,导入身高体重的相关参数。
- 每次添加数据后返回主页面刷新模型。
// 监听数据集的变化
@Prop @Watch('onDataChange') trendData: Array<number>
// 变化刷新模型
onDataChange() {
if (this.model) {
this.model.setData(this.getLineData());
this.model.notifyDataSetChanged();
this.model.invalidate();
}
}
// 绘制曲线
LineCharts({
duringMinValue: 0,
duringMaxValue: 70,
timeStyle: TIME_STYLE,
duringTime: DATE_TIME,
trendData: this.weightList
})
https://developer.huawei.com/consumer/cn/forum/topic/0208186442611457099可以学习这篇文章,使用McCharts组合图组件
mpchart 一个包含各种类型图表的图表库,主要用于业务数据汇总,例如销售数据走势图,股价走势图等场景中使用,方便开发者快速实现图表UI,mpchart主要包括线形图、柱状图、饼状图、蜡烛图、气泡图、雷达图、瀑布图等自定义图表库。
ECharts是一个使用JavaScript实现的开源可视化库,这个用web都能显示出来吧!
HarmonyOS Next支持集成ECharts组件,可通过适配其JavaScript API在ArkUI Web组件中渲染图表。同时支持第三方图表组件如ZRender、Chart.js等,需通过Native API或Web方式调用。鸿蒙的ArkUI声明式开发范式允许自定义绘制组件,也可直接使用鸿蒙生态中的图表库。