组件功能

数据可视化组件,用于以图形方式展示结构化数据,支持柱状图、折线图和面积图等常见图表类型,适用于趋势分析、对比展示和统计汇总等场景。

基础用法

通过 type 指定图表类型,data 提供数据源,series 定义数据系列的展示方式,xAxis 用于配置横轴字段或显示规则。

Template 示例:

<Card>
  <Chart
    xAxis="month"
    data={[
      { month: '1月', sales: 120 },
      { month: '2月', sales: 200 },
      { month: '3月', sales: 150 },
    ]}
    series={[
      { type: 'bar', dataKey: 'sales', label: '销售额', color: '#0052D9' },
    ]}
  />
</Card>

效果展示如下:

属性说明

属性名 类型 描述 默认值
data ChartDataRow[] 图表数据数组 -
series SeriesConfig[] 系列配置数组 -
xAxis string | XAxisConfig X 轴配置或数据字段名 -
width number | string 图表宽度 -
size number | string 图表尺寸 -
minWidth number | string 最小宽度 -
maxWidth number | string 最大宽度 -
showTooltip boolean 显示提示框 true
showYAxis boolean 显示 Y 轴 false
showLegend boolean 显示图例 true
barGap number | string 柱状图间距 -
barCategoryGap number | string 柱状图分类间距 -
flex number | string Flex 值 -
aspectRatio number | string 宽高比 (如 16/9) 4/3

注意:

★ 标记为必填属性。

尺寸说明

  • 在容器内(有 data-w-container 属性的父元素):图表宽度默认为 100%,自适应容器。

  • 不在容器内且未设置width/size:图表宽度默认为 260px

  • 高度控制:默认由 aspectRatio 决定(4:3)。

ChartDataRow 类型

数据对象支持任意字段:

{
  [key: string]: any; // 如 date, Desktop, Mobile 等
}

SeriesConfig 类型

每个系列配置通过 type 属性指定图表类型。如果所有系列类型相同,使用对应的图表容器;如果类型不同,则使用混合图表模式。

柱状图系列:

{
  type: "bar";
  dataKey: string;     // 数据字段名
  label?: string;      // 系列标签
  color?: string;      // 柱子颜色
  stack?: string;      // 堆叠分组ID
}

折线图系列:

{
  type: "line";
  dataKey: string;
  label?: string;
  color?: string;
  curveType?: CurveType; // 曲线类型
}

面积图系列:

{
  type: "area";
  dataKey: string;
  label?: string;
  color?: string;
  curveType?: CurveType;
  stack?: string;
}

XAxisConfig 对象

用于对 X 轴进行精细化控制。

属性名 类型 描述 默认值
dataKey string 数据字段名 -
label string | number | object 坐标轴标签 -
type "number" | "category" 坐标轴类型 "category"
hide boolean 是否隐藏 false
angle number Tick 旋转角度 -
tickMargin number Tick 间距 -
allowDuplicatedCategory boolean 允许重复分类 false

CurveType 类型

折线图和面积图支持以下曲线类型:

  • "basis" - 基础曲线

  • "linear" - 直线

  • "natural" - 自然曲线

  • "monotoneX" - X 轴单调曲线

  • "monotoneY" - Y 轴单调曲线

  • "step" - 阶梯曲线

  • "stepBefore" - 前阶梯

  • "stepAfter" - 后阶梯

使用示例

柱状图

Template 示例:

<Chart 
  xAxis="month"
  data={[
    { month: "1月", sales: 120, profit: 80 },
    { month: "2月", sales: 200, profit: 150 }
  ]}
  series={[
    { type: "bar", dataKey: "sales", label: "销售额", color: "#0052D9" },
    { type: "bar", dataKey: "profit", label: "利润", color: "#00A870" }
  ]}
/>

效果展示如下:

折线图

Template 示例:

<Chart
  xAxis="date"
  data={[
    { date: '2024-01', value: 100 },
    { date: '2024-02', value: 150 },
  ]}
  series={[
    {
      type: 'line',
      dataKey: 'value',
      label: '趋势',
      color: '#0052D9',
    },
  ]}
/>

效果展示如下:

面积图

Template 示例:

<Chart 
  xAxis="time"
  data={[
    { time: "00:00", visitors: 100 },
    { time: "12:00", visitors: 300 }
  ]}
  series={[
    {
      type: "area",
      dataKey: "visitors",
      label: "访问量",
      color: "#0052D9"
    }
  ]}
/>

效果展示如下:

混合图表

可以在同一个图表中混合使用不同类型的图表进行展示。

Template 示例:

<Chart 
  xAxis="month"
  data={[
    { month: "1月", sales: 120, target: 100 },
    { month: "2月", sales: 200, target: 150 }
  ]}
  series={[
    { type: "bar", dataKey: "sales", label: "实际销售", color: "#0052D9" },
    { type: "line", dataKey: "target", label: "目标", color: "#00A870" }
  ]}
/>

效果展示如下: