在 OpenHarmony(特别是基于 ArkUI / eTS 开发)中,实现图表通常有以下几种方式,按使用频率和推荐程度说明:
适合:折线图、柱状图、饼图等基础图表
OpenHarmony 提供 Canvas 组件,可直接绘制图表。
示例:简单折线图
@Entry
@Component
struct LineChart {
private settings: RenderingContextSettings = new RenderingContextSettings(true)
private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
build() {
Column() {
Canvas(this.context)
.width('100%')
.height(300)
.onReady(() => {
this.drawLine()
})
}
}
drawLine() {
this.context.beginPath()
this.context.moveTo(50, 250)
this.context.lineTo(150, 100)
this.context.lineTo(250, 180)
this.context.lineTo(350, 50)
this.context.strokeStyle = '#007DFF'
this.context.lineWidth = 3
this.context.stroke()
}
}
✅ 优点
❌ 缺点
适合:生产环境、复杂图表
ECharts 已支持 OpenHarmony(通过 canvas 渲染)。
步骤:
npm install echarts
import * as echarts from 'echarts'
@Entry
@Component
struct EChartPage {
private settings: RenderingContextSettings = new RenderingContextSettings(true)
private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
build() {
Canvas(this.context)
.width('100%')
.height(300)
.onReady(() => {
const chart = echarts.init(this.context)
chart.setOption({
xAxis: { type: 'category', data: ['Mon','Tue','Wed'] },
yAxis: { type: 'value' },
series: [{ type: 'bar', data: [120, 200, 150] }]
})
})
}
}
✅ 优点
⚠️ 注意
适合:快速开发
charts示例(伪代码):
BarChart({ data: [10, 20, 30] })
✅ 优点
| 场景 | 推荐方式 |
|---|---|
| 学习 / 简单展示 | Canvas 自绘 |
| 企业项目 | ECharts |
| 快速原型 | 三方图表组件 |
如果你需要:
可以告诉我,我可以直接给你完整可运行代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。