vue3堆叠图展示(附效果图)

const option2 = computed(() => {
    const defaultOption = {
      //   title: {
      //     text: 'Stacked Area Chart',
      //   },
      tooltip: {
        trigger: 'axis',
        axisPointer: {
          type: 'cross',
          label: {
            backgroundColor: '#6a7985',
          },
        },
      },
      legend: {
        data: ['省间绿电交易', '省间直接交易', '省内绿电交易', '省内直接交易'],
      },
      //   toolbox: {
      //     feature: {
      //       saveAsImage: {},
      //     },
      //   },
      grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true,
      },
      xAxis: [
        {
          type: 'category',
          boundaryGap: false,
          data: datetimeXlist.value,
        },
      ],
      yAxis: [
        {
          type: 'value',
          name: '单位:万千瓦时',
          axisLine: {
            lineStyle: {
              color: '#000',
            },
          },
          axisLabel: {
            padding: [0, 20, 0, 0], // 设置上、右、下、左四个方向的内边距
          },
        },
      ],
      series: [
        {
          name: '省间绿电交易',
          type: 'bar',
          stack: 'Total',
          barWidth: '20',
          areaStyle: {},
          emphasis: {
            focus: 'series',
          },
          data: sjgreenData.value,
        },
        {
          name: '省间直接交易',
          type: 'bar',
          stack: 'Total',
          barWidth: '30',
          areaStyle: {},
          emphasis: {
            focus: 'series',
          },
          data: shjDirectdata.value,
        },
        {
          name: '省内绿电交易',
          type: 'bar',
          stack: 'Total',
          barWidth: '30',
          areaStyle: {},
          emphasis: {
            focus: 'series',
          },
          data: shnGreendata.value,
        },
        {
          name: '省内直接交易',
          type: 'bar',
          stack: 'Total',
          barWidth: '30',
          areaStyle: {},
          emphasis: {
            focus: 'series',
          },
          data: shnDirectdata.value,
        },
      ],
    };

    return defaultOption;
  });

记得给容器加个宽度和高度   宽度:100%, 高度 40vh

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3 中,要为堆柱状增加比例标签,你可以使用 Chart.js 这个流行的表库。下面是一个简单的示例代码,演示了如何使用 Chart.js 在 Vue 3 中创建一个堆柱状,并添加比例标签: 1. 首先,确保你的项目中已经安装了 Chart.js 和 vue-chartjs。你可以使用以下命令进行安装: ```bash npm install chart.js vue-chartjs ``` 2. 在你的组件中导入所需的库和模块: ```javascript import { Bar, mixins } from 'vue-chartjs'; const { reactiveProp } = mixins; ``` 3. 创建一个名为 "StackedBarChart" 的组件,并扩展 `Bar` 类和 `reactiveProp`。 ```javascript export default { extends: Bar, mixins: [reactiveProp], props: { options: { type: Object, default: null, }, }, mounted() { this.renderChart(this.chartData, this.options); }, }; ``` 4. 在模板中使用 `<stacked-bar-chart>` 标签,并传递数据和选项作为属性: ```html <template> <div> <stacked-bar-chart :chart-data="chartData" :options="chartOptions"></stacked-bar-chart> </div> </template> ``` 5. 在组件的 `data` 中定义你的表数据和选项: ```javascript data() { return { chartData: { labels: ['A', 'B', 'C', 'D'], datasets: [ { label: 'Data 1', data: [10, 20, 30, 40], backgroundColor: '#f87979', }, { label: 'Data 2', data: [30, 20, 10, 50], backgroundColor: '#7acbf9', }, ], }, chartOptions: { scales: { x: { stacked: true }, y: { stacked: true, ticks: { callback: function (value) { return value + '%'; }, }, }, }, }, }; }, ``` 在上面的代码中,我们定义了两个数据集(Data 1 和 Data 2),并使用了不同的颜色。在 `chartOptions` 中,我们将 `stacked` 属性设置为 `true` 来启用堆效果,并使用 `callback` 函数将 y 轴刻度值转换为百分比形式显示。 这样就可以在 Vue 3 中创建一个堆柱状,并添加比例标签了。你可以根据自己的需求调整数据和选项。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值