echarts排名图效果(渐变)

 1. 效果如图,排名图渐变颜色,top3配置不同的颜色

const chartData1 = [{
    name: "天津市",
    value: 64
}, {
    name: "北京市",
    value: 92
}, {
    name: "重庆市",
    value: 103
}, {
    name: "广州市",
    value: 155
}, {
    name: "上海市",
    value: 205
}, {
    name: "南京市",
    value: 250
}, {
    name: "武汉市",
    value: 78
}]
const chartData = chartData1.sort((a, b) => {
    return b.value - a.value
})
var attackSourcesColor = [
    new echarts.graphic.LinearGradient(0, 1, 1, 1, [
        { offset: 0, color: "#00ff3c" },
        { offset: 1, color: "#31e6ff" }
    ]),
    new echarts.graphic.LinearGradient(0, 1, 1, 1, [
        { offset: 0, color: "#0cf96e" },
        { offset: 1, color: "#31e6ff" }
    ]),
    new echarts.graphic.LinearGradient(0, 1, 1, 1, [
        { offset: 0, color: "#3584ed" },
        { offset: 1, color: "#31e6ff" }
    ]),
    new echarts.graphic.LinearGradient(0, 1, 1, 1, [
        { offset: 0, color: "#395CFE" },
        { offset: 1, color: "#2EC7CF" }
    ])
];

function colorFormat(sData) {
    const res = sData.map((el, i) => {
        const color = i > 3 ? attackSourcesColor[3] : attackSourcesColor[i]
        return {
            value: el,
            itemStyle: {
                color,
            }
        }
    })
    return res
}

var option = {
    tooltip: {
        show: false,
    },
    color: ["#F7B731"],

    grid: {
        left: "8%",
        right: "8%",
        bottom: "8%",
        top: "8%",
        containLabel: true
    },
    xAxis: {
        type: "value",
        splitLine: {
            show: false
        },
        axisLabel: {
            show: false
        },
        axisTick: {
            show: false
        },
        axisLine: {
            show: false
        }
    },
    yAxis: [
        {
            type: 'category',
            interval: 0,
            max:6,
            inverse: true,
            position: "left",
            axisLabel: {
                color: `#fff`,
                fontSize: 14
            },
            axisLine: {
                show: false
            },
            axisTick: {
                show: false
            },
            data: chartData.map(el => el.name)
        },
    ],
    series: [
        {
            zlevel: 1,
            name: "利润率排名",
            type: "bar",
            barWidth: "15px",
            data: colorFormat(chartData.map(el => el.value)),
            itemStyle: {
                normal: {
                    barBorderRadius: 10
                }
            },
            label: {
                show: true,
                fontSize: 18,
                color: "#fff",
                textBorderWidth: 2,
                position: "right"
            },
            showBackground: true,
            backgroundStyle: {
                color: "#05325F",
                borderRadius: 10
            }
        },
    ]
};

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值