返回官网 Developer Docs / Line

McLineChart

折线图 · 固定折线。属性、事件、手势与在线效果。

折线图固定 linemccharts 3.0.0@mcui/mccharts 3.0.0
实时预览可直接编辑 option
3.0.0 当前版本 · 按图表类型查看 option 属性 图表文档 → 更新日志
固定入口组件,不是 McChartsV2 的别名。

McLineChart 保留旧的组件名和 options 写法,内部接入 mccharts 引擎。 它与 McChartsV2 的属性集合不同,更新方式也不同;新项目优先使用 McChartsV2。

01 / COMPONENT

McLineChart

固定折线入口。适合已经使用旧调用方式的页面;组件接收旧 options, 由 mccharts 引擎完成渲染。

line默认系列类型
Objectoptions 默认 {}
V1旧组件声明方式
可选controller / 手势 / 事件
02 / GET STARTED

快速开始

传入折线数据即可;需要外部更新、点击、导出或 dataZoom 时再绑定 McChartsController。

McLineChart.ets
import { McLineChart, McChartsController } from '@mcui/mccharts';
import type { Options } from '@mcui/mccharts';

@Entry
@ComponentV2
struct TrendPage {
  private controller: McChartsController = new McChartsController();
  private option: Options = {
    textStyle: { fontFamily: 'HarmonyOS Sans', fontSize: 12 },
    grid: { left: 46, right: 22, top: 34, bottom: 34 },
    xAxis: {
      type: 'category',
      data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    },
    yAxis: { type: 'value', min: 0, max: 40 },
    series: [{
      id: 'trend',
      data: [18, 24, 21, 31, 27, 35, 30],
      smooth: true,
      areaStyle: { opacity: 0.16 }
    }]
  };

  build() {
    McLineChart({
      options: this.option,
      controller: this.controller,
      active: true,
      enableDataZoom: false,
      rasterText: false
    })
      .width('100%')
      .height(390)
  }
}
options 在初次挂载时读取。

后续数据更新请使用 controller.setOption(...);不要直接原地修改 series.data 数组并期待组件自动刷新。

03 / PROPS

组件属性

McLineChart 的完整属性。它与 McBarChart 属性集合相同, 但默认类型和示例不同,因此各自独立成页。

属性类型 / 默认可选值行为与注意
options Options
{}
任意合法旧/标准 option;未写 series.type 时按 line 处理 默认空对象。初次挂载读取;后续更新走 controller。
controller McChartsController
默认新建
一个 controller 实例 可省略;需要 setOption、事件、导出时传入。一个实例只绑定一张图。
active boolean
true
true | false 组件活跃状态;与页面可见性共同暂停帧时钟。
enableDataZoom boolean
false
true | false 开启 inside dataZoom 的单指平移/双指缩放;需 option 含 dataZoom。
rasterText boolean
false
true | false 纹理文字快照;调用 getDataURL 导出时必须为 true。
eventNames string[]
[]
click、datazoom、brushselected 等 原始事件白名单,仅传给 onChartEvent。
onChartClick (event: ChartClick) => void 回调 / 省略 系列数据点击;value 为展示字符串。
onMarkerClick (event: MarkerClick) => void 回调 / 省略 标注点击;dataIndex 是标注索引。
onChartEvent (event: { eventName, params }) => void 回调 / 省略 只接收 eventNames 中列出的原始事件。
options.cWidth number | string
'100%'
有限正数 / 百分比字符串 旧字段,作为组件宽度;外层布局仍可覆盖。
options.cHeight number | string
'100%'
有限正数 / 百分比字符串 旧字段,作为组件高度。

固定入口不提供 resetKey、legacyType、enableBrush 或 showRenderStats;这些是 McChartsV2 的属性。

04 / OPTION

options 映射

旧字段会映射为引擎配置;标准字段优先,组件默认系列类型为 line。

字段可选值 / 默认说明
series.type未写时按 line组件以折线为默认;不要用它切换成 bar,柱状请使用 McBarChart。
series.smoothtrue | false平滑折线;与直线段、阶梯线互斥取舍。
series.stepfalse | 'start' | 'middle' | 'end'阶梯折线;与 smooth 同时设置时的优先级以引擎为准。
series.areaStyleObject | undefined面积填充;支持线性渐变,不支持径向渐变。
series.connectNullstrue | false连接空值;大数据下注意断点语义。
dataZoominside / sliderinside 手势需要 enableDataZoom: true。
cWidth / cHeightnumber | string旧尺寸字段;标准 option 其余配置直接提交。
05 / DIFFERENCE

与 McChartsV2 的对照

能力McLineChartMcChartsV2
声明方式旧 @Component 入口@ComponentV2 入口
默认类型固定 line标准 option,多系列类型
options 更新初次挂载读取,后续走 controller替换引用即可更新
resetKey不支持支持
legacyType不需要(类型固定)支持旧字段转换
enableBrush不支持支持
showRenderStats不支持支持
事件支持点击 / 标注 / 原始事件同样支持
06 / EVENTS

事件

固定入口与 McChartsV2 共用事件载荷;区别只是属性名和组件声明方式。

入口用途载荷
onChartClick折线数据点 / 系列点击{ seriesIndex, dataIndex, name, value, seriesType, ... }
onMarkerClickmarkPoint / markLine / markArea 点击ChartClick + componentType
onChartEvent白名单原始事件{ eventName, params };需配合 eventNames
事件与手势
McLineChart({
  options: this.option,
  controller: this.controller,
  enableDataZoom: true,
  eventNames: ['datazoom'],
  onChartClick: (event) => {
    console.info(event.seriesType, event.name, event.value);
  },
  onChartEvent: ({ eventName, params }) => {
    if (eventName === 'datazoom') { /* ... */ }
  }
})
  .width('100%')
  .height(390)
07 / INPUT

手势

旧折线入口只提供 dataZoom 手势,没有 brush 开关。

属性可选值效果
enableDataZoomtrue | false单指平移、双指缩放;需要 option 含 inside dataZoom。
Tap始终可用数据点点击与标注点击。
08 / LIMITS

限制与导出

渲染引擎的硬限制与 McChartsV2 相同,详细预算和错误码见公共文档。

  • 没有 enableBrush;需要框选时使用 McChartsV2 或工具箱动作。
  • 导出必须是 PNG、pixelRatio: 1、空 excludeComponents,并要求 rasterText: true。
  • 后续更新必须通过 controller;旧组件不会递归观察 options 内部数组。
  • 文字由 ArkUI 叠层渲染,位于几何之上;复杂的文字/路径交错层级不支持。

完整的渲染预算、渐变、large 数据与导出错误码: McChartsV2 支持与限制。

09 / FAQ

常见问题

McLineChart 和 McChartsV2 可以混用吗?

不要在同一张图里混用两套组件或控制器。新项目使用 McChartsV2;旧页面可以单独保留 McLineChart。

为什么改了 options 没更新?

固定入口只在初次挂载时读取 options。请调用 controller.setOption(...),或改用 McChartsV2 后替换 options 引用。

可以传入柱状数据吗?

这个组件的默认类型是折线。需要柱状请使用 McBarChart,两者属性集合一样但类型和默认示例不同。

需要标准多系列组件?

McChartsV2 支持完整属性、resetKey、brush 与在线编辑。

查看 McChartsV2