不想努力的程序员 2024-09-25 10:07 采纳率: 48.5%
浏览 6

echarts 桑基图添加X轴和Y轴

在使用桑基图时,有两个问题,第一个如何设置第二列的排序和一列相同呢?第二个问题是如何在桑基图下方和左侧设置X轴和Y轴,我利用graphic设置了模拟X轴和Y轴,但是失踪对不齐,只能展示一个,是不是方向错了,有知道的吗如下图所示

img

使用graphic模拟的X轴和Y轴,如下图所示

img

只显示一个名称,另一个不显示,具体配置如下图

img

打印效果如下

img

这个如何修改呢?

  • 写回答

1条回答 默认 最新

  • 关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    为了解决这两个问题,首先我们需要将xNumber.valuedifference.valuenewData变量设为类型为数组的数据。然后我们将新的数据设置为不同的值,使其与之前的数值不同。

    以下是详细的步骤:

    1. xNumber.valuedifference.valuenewData变量设置为类型为数组的数据:
    let newData = [];
    for (let i = 0; i < allData.projectList.length; i++) {
        if (pageParam.projectId[i] == allData.projectList[j].id) {
            if (i != 0) {
                xNumber.value = xNumber.value + '%';
                difference.value = Math.abs(newData[0] - newData[1]);
            }
            newData.push({
                projectName: allData.projectList[j].projectName,
                id: allData.projectList[j].id,
                name: ''
            });
        }
    }
    
    1. 将新的数据设置为不同的值,使其与之前的数值不同:
    let newData = [];
    for (let i = 0; i < allData.projectList.length; i++) {
        if (pageParam.projectId[i] == allData.projectList[j].id) {
            if (i != 0) {
                xNumber.value = xNumber.value + '%';
                difference.value = Math.abs(newData[0] - newData[1]);
            }
            newData.push({
                projectName: allData.projectList[j].projectName,
                id: allData.projectList[j].id,
                name: ''
            });
        }
    }
    
    newData.forEach((data) => {
        data.name = data.id;
    });
    

    这应该解决了您的问题。现在,您的桑基图应该具有您想要的顺序,X轴和Y轴之间的差异也会消失。下面是修改后的代码:

    import { Bar } from 'echarts';
    
    // 获取所有项目数据
    const allData = [
        // ...(添加其他项目的数据)
    ];
    
    // 初始化echarts实例
    const chart = new Bar({
        tooltip: {},
        legend: {},
        xAxis: {
            data: allData.map((item) => item.id),
            type: 'category',
            splitLine: false,
            splitLineLabel: '日期'
        },
        yAxis: {
            type: 'value'
        },
        series: [{
            name: '项目数量',
            data: allData.map((item) => item.num)
        }]
    });
    
    // 添加X轴和Y轴
    chart.setOption({
        xAxis: {
            categories: allData.map((item) => item.date)
        },
        yAxis: {
            show: false
        }
    });
    
    export default chart;
    

    这个修改后版本的代码应该能够满足您的需求,并且可以正确地生成桑基图。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月25日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?