Skip to content

LineChart 折线图

基于 ECharts 封装的折线图组件,支持数据展示、面积填充、平滑曲线等功能。

基础用法

折线图示例
vue
<script setup>
import { lineChart } from '@twi1i9ht/visual-lib'
</script>

<template>
  <lineChart
    :data="[150, 230, 224, 218, 135, 147, 260]"
    :x-axis-data="['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']"
    series-name="访问量"
    title="周访问量统计"
  />
</template>

面积图

设置 show-area 属性显示面积填充。

vue
<template>
  <lineChart
    :data="[820, 932, 901, 934, 1290, 1330, 1320]"
    :x-axis-data="['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']"
    :show-area="true"
    :area-opacity="0.3"
    line-color="#91cc75"
  />
</template>

自定义样式

vue
<template>
  <lineChart
    :data="[120, 200, 150, 80, 70, 110, 130]"
    :x-axis-data="['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']"
    line-color="#ee6666"
    :line-width="3"
    line-type="dashed"
    :symbol-size="10"
    :smooth="false"
  />
</template>

高级配置

使用 option prop 可以完全自定义 ECharts 配置:

vue
<script setup>
import { lineChart } from '@twi1i9ht/visual-lib'

const customOption = {
  tooltip: { trigger: 'axis' },
  xAxis: {
    type: 'category',
    data: ['Q1', 'Q2', 'Q3', 'Q4'],
  },
  yAxis: { type: 'value' },
  series: [
    { name: '2023', type: 'line', data: [120, 132, 101, 134] },
    { name: '2024', type: 'line', data: [220, 182, 191, 234] },
  ],
}
</script>

<template>
  <lineChart :option="customOption" />
</template>

Props

属性类型默认值说明
datanumber[][150, 230, 224, 218, 135, 147, 260]Y 轴数据
xAxisDatastring[]['Mon', 'Tue', ...]X 轴类目数据
seriesNamestring'Series'系列名称
titlestring图表标题
lineColorstring'#5470c6'线条颜色
smoothbooleantrue是否平滑曲线
showAreabooleanfalse是否显示面积填充
areaOpacitynumber0.3面积填充透明度
showTooltipbooleantrue是否显示提示框
showLegendbooleantrue是否显示图例
legendPosition'top' | 'bottom' | 'left' | 'right''top'图例位置
showGridbooleantrue是否显示网格线
xAxisNamestringX 轴名称
yAxisNamestringY 轴名称
showXAxisLinebooleantrue是否显示 X 轴线
showXAxisLabelbooleantrue是否显示 X 轴标签
showYAxisLinebooleantrue是否显示 Y 轴线
showYAxisLabelbooleantrue是否显示 Y 轴标签
symbolSizenumber6数据点大小
lineWidthnumber2线条宽度
lineType'solid' | 'dashed' | 'dotted''solid'线条类型
showSymbolbooleantrue是否显示数据点
optionEChartsOption高级配置,完全覆盖默认配置

Events

该组件基于 vue-echarts,支持所有 ECharts 事件。可通过 ref 获取 ECharts 实例后绑定:

vue
<script setup>
import { ref, onMounted } from 'vue'
import { lineChart } from '@twi1i9ht/visual-lib'

const chartRef = ref()

onMounted(() => {
  // 获取 ECharts 实例
  const chart = chartRef.value?.$el?.querySelector('.echart')?.__vueParentComponent?.ctx
  // 绑定事件...
})
</script>

<template>
  <lineChart ref="chartRef" :data="[10, 20, 30]" />
</template>

注意事项

  1. 确保容器有明确的宽高,组件默认 width: 100%; height: 100%
  2. 需要安装 peer dependencies: echartsvue-echarts

Released under the MIT License.