制作高质量 OpenHarmony 图表的实用方案
一、方案选型与适用场景
二、标准实现流程
三、高质量图表的关键实践
四、快速上手示例
<!-- index.hml -->
<div class="container">
<chart class="chart" type="bar" options="{{ barOps }}" datasets="{{ barData }}"></chart>
</div>
/* index.css */
.container { width: 100%; height: 100%; flex-direction: column; justify-content: center; align-items: center; }
.chart { width: 90%; height: 400px; }
// index.js
export default {
data: {
barData: [{ data: [120, 200, 150, 80, 70, 110, 130] }],
barOps: {
xAxis: { min: 0, max: 6, axisTick: 7, display: true },
yAxis: { min: 0, max: 220, axisTick: 8, display: true },
series: { lineStyle: { width: 0 } } // 柱状图无需线宽
}
}
}
// 引入
import {
JArrayList, EntryOhos, LineDataSet, ILineDataSet, LineData, LineChart, LineChartModel
} from '@ohos/mpchart';
@Entry
@Component
struct LineChartPage {
private model: LineChartModel = new LineChartModel();
aboutToAppear() {
// 1) 构造数据
let values = new JArrayList<EntryOhos>();
for (let i = 1; i <= 20; i++) {
values.add(new EntryOhos(i, Math.random() * 100));
}
let dataSet = new LineDataSet(values, 'Demo');
let dataSetList = new JArrayList<ILineDataSet>();
dataSetList.add(dataSet);
let lineData = new LineData(dataSetList);
// 2) 设置数据
this.model.setData(lineData);
// 3) 可开启交互(示例)
// this.model.setHorizontalScrollEnabled(true);
// this.model.setOnChartValueClickListener((chart, entry, highlight) => { ... });
}
build() {
Column() {
LineChart({ model: this.model })
.width('100%')
.height('70%')
.backgroundColor(Color.White)
}
.width('100%')
.height('100%')
}
}
提示:如使用 2.7 版本,请改用 model.setLineData(lineData),并通过 model.setWidth/setHeight 设定固定尺寸。五、常见问题与排查
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。