Skip to content

柱状图

3D 柱状图展示分类数据对比,通过立体柱形高度直观呈现数值大小。

快速开始

最简单的柱状图只需提供数据,光照、颜色等自动配置:

vue
<template>
  <RayBar :option="chartOption" />
</template>

<script setup>
import { ref } from 'vue'
import { RayBar } from 'raychart'

const chartOption = ref({
  series: [{
    data: [120, 200, 150, 80, 70, 110, 130]
  }],
  xAxis3D: {
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  }
})
</script>

智能默认值

自动配置光照、颜色和材质,无需手动设置即可获得出色效果。

核心配置

数据配置

属性类型默认值说明
series.datanumber[]-柱状图数据(必填)
xAxis3D.datastring[]-X 轴类别数据

样式配置

属性类型默认值说明
series.barWidthnumber | string步长 × 0.8柱子宽度,支持数字或 '50%' 百分比(相对步长)
series.barDepthnumber | string1.5柱子深度,支持数字或 '50%' 百分比(相对网格深度)
series.colorstring[]自动分配柱子颜色,按索引轮转
series.labelobject不显示柱顶标签,如 { show: true, fontSize: 12, color: '#333', formatter: '{c}' }
series.animationbooleantrue首次渲染是否播放生长动画
series.animationDurationnumber800动画时长(ms)

交互配置

属性类型默认值说明
controlSettings.enableRotatebooleantrue启用旋转
controlSettings.enableZoombooleantrue启用缩放
controlSettings.enablePanbooleantrue启用平移
材质配置(进阶)

通过 itemStyle 配置柱子的材质效果:

javascript
itemStyle: {
  metalness: 0.3,          // 金属度 (0-1)
  roughness: 0.5,          // 粗糙度 (0-1)
  emissive: '#000000',     // 自发光颜色
  emissiveIntensity: 0.0   // 自发光强度
}

详见 材质系统

标签配置(可选)
javascript
label: {
  show: true,
  fontSize: 12,
  color: '#333',
  formatter: '{c}'  // 标签格式化
}

常见场景

多色柱状图

柱状图当前只渲染 series 中的第一个系列,需要区分不同数据时,通过 color 数组(按索引轮转)或单个数据项的 itemStyle.color 指定颜色:

vue
<template>
  <RayBar :option="chartOption" />
</template>

<script setup>
import { ref } from 'vue'
import { RayBar } from 'raychart'

const chartOption = ref({
  series: [{
    name: '2024',
    data: [
      { value: 120, itemStyle: { color: '#42b883' } },
      { value: 200, itemStyle: { color: '#5470c6' } },
      { value: 150, itemStyle: { color: '#fac858' } },
      { value: 80, itemStyle: { color: '#ee6666' } },
      { value: 70, itemStyle: { color: '#73c0de' } },
      { value: 110, itemStyle: { color: '#3ba272' } },
      { value: 130, itemStyle: { color: '#fc8452' } }
    ]
  }],
  xAxis3D: {
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  }
})
</script>

多系列支持

RayBar 的柱状图只渲染 series[0],暂不支持多系列并列或堆叠;需要并列/堆叠效果时,可把多组数据合并为单系列(如拼接数据并用 color 区分)。

自定义样式

需要精细控制时,自定义颜色和材质:

vue
<script setup>
const chartOption = ref({
  series: [{
    name: '销售额',
    data: [120, 200, 150, 80, 70, 110, 130],
    color: ['#42b883'],
    barWidth: 1.5,
    barDepth: 1.5,
    itemStyle: {
      metalness: 0.3,
      roughness: 0.5
    }
  }],
  xAxis3D: {
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis3D: {
    name: '销售额'
  }
})
</script>

组件属性

属性类型默认值说明
optionRayChartOption-图表配置对象(必填)
widthstring | number'100%'图表宽度
heightstring | number'600px'图表高度

相关文档

基础学习

进阶主题

API 参考

其他图表类型

在线示例