在 OpenHarmony 中集成图表,常见做法有三类:官方图表组件、第三方图表库、自绘 Canvas。下面按「最常用 → 进阶」的方式说明。
OpenHarmony(API 9+)在 ArkUI 中已提供基础图表组件,适合常见业务场景。
import { LineChart, LineChartModel } from '@ohos/charts'
@Entry
@Component
struct ChartPage {
build() {
Column() {
LineChart({
model: new LineChartModel()
.setXAxisData(['Mon', 'Tue', 'Wed', 'Thu', 'Fri'])
.setYAxisData([10, 20, 15, 25, 30])
})
.width('100%')
.height(300)
}
}
}
⚠️ 具体 API 名称可能随版本变化,建议查看对应 API 版本的 @ohos/charts 文档。
OpenHarmony 支持 Web 组件,可加载 ECharts。
echarts.min.jsresources/rawfile/Web({
src: $rawfile('chart.html')
})
.width('100%')
.height(400)
chart.html 示例:
<div id="main" style="width:100%;height:100%"></div>
<script src="echarts.min.js"></script>
<script>
var chart = echarts.init(document.getElementById('main'));
chart.setOption({
xAxis: { type: 'category', data: ['A','B','C'] },
yAxis: { type: 'value' },
series: [{ type: 'bar', data: [1,2,3] }]
});
</script>
✅ 优点:功能最全
❌ 缺点:体积大、性能略低
适合:
Canvas(this.context)
.width('100%')
.height(300)
.onReady(() => {
const ctx = this.context
ctx.beginPath()
ctx.moveTo(0, 100)
ctx.lineTo(100, 50)
ctx.lineTo(200, 80)
ctx.stroke()
})
| 场景 | 推荐方案 |
|---|---|
| 普通业务图表 | ArkUI 官方图表 |
| 复杂可视化 | ECharts + Web |
| 实时 / 低功耗 | Canvas 自绘 |
| 快速开发 | 官方组件 |
如果你能告诉我:
我可以直接给你 可运行示例 + 目录结构。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。