echarts柱状图使用自定义图片填充柱体

这是我的柱状图图片纹理的实现过程的流水账式记录

方法一:

在option.series里面,给每一项配置上图片路径

javascript 复制代码
let Image2 = new Image()
Image2.src = 'src/assets/image/BarChart-line.png'

color: {
    image: Image,
    repeat: 'repeat'
}

出来的效果比较适合整体纹样、颜色没差的图片 ,这样看不出断裂情况,如果图片跟柱体不匹配,容易出现断裂情况,我感觉这个有点像,左上为原点坐标,向下向右平铺图片作为底图,只有柱状图的区域部分会露出下面的图一样。

再找找别的方法

方法二:

后面找到了这个,这个有点像我想要的,用一张图铺满整个bar,当然要是想要重复也可以,大概写了一下,效果如下:

这个好像比上面的更适合我的需求,我自己的代码如下:

javascript 复制代码
<template>
    <div>
        <div ref="customPatternBarChart" style="width: 100%; height: 400px;"></div>
    </div>
</template>
 
<script setup>
import * as echarts from 'echarts';
import { ref, onMounted } from 'vue'

    const customPatternBarChart = ref(null);
onMounted(() => {
    
        var myChart = echarts.init(customPatternBarChart.value);
        var option;

        option = {
        xAxis: {
            type: 'category',
            data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
        },
        yAxis: {
            type: 'value'
        },
        tooltip: {
            trigger: "axis",
            axisPointer: {
                type: "shadow",
            },
            backgroundColor: 'rgba(0, 0, 0, 0.8)',
            borderWidth: 0, // 提示框边框宽度
            textStyle: {
                color: '#fff', // 提示框文字颜色
            }
        },
        legend: {
            data: ['图例1', '图例2'], // 图例的名称,与 series 的 name 对应
            textStyle: {
                color: '#333', // 图例文字颜色
            },
            itemWidth: 20, // 图例图形宽度
            itemHeight: 14, // 图例图形高度
            orient: 'horizontal', // 图例的排列方向,'vertical' 为竖向,'horizontal' 为横向
            top: 'top', // 图例的位置
            left: 'center' // 图例的位置
        },
        series: [
            {
                name: '图例1',
                type: 'pictorialBar',
                symbol: 'image://src/assets/image/BarChart-line2.png',
                data: [10, 21, 54, 34, 23, 41, 15],
                symbolSize: [15, '100%']
            },
            {
                name: '图例2',
                type: 'pictorialBar',
                data: [9, 15, 52, 30, 21, 31, 10],
                symbol: 'image://src/assets/image/BarChart-line1.png',
                symbolSize: [20, '100%'],
                symbolOffset: [20, 0]
            }
        ]
        };

        option && myChart.setOption(option);

});
</script>
 
<style scoped>
div {
    color: aqua;
}
</style>

我是看到有人用循环写出来了一个

也记录一下这篇文章,我是先参考这篇文章才知道要去找'pictorialBar'的

echart自定义图片填充柱状图_echarts柱状图图片填充-CSDN博客

如果后续还需要什么字段,这里缺少的话,可以去echarts看官方文档吧

相关推荐
kyriewen6 分钟前
2026 年了,这 6 个 npm 包可以卸载了——浏览器原生 API 已经能替代
前端·javascript·npm
铁皮饭盒1 小时前
bun直接tsx,优雅!
javascript·后端
Csvn3 小时前
Monorepo 迁移血泪史:从 Multi-Repo 到 Turborepo,这 3 个坑我帮你踩完了
前端
星栈3 小时前
Dioxus 多页面怎么做:`dioxus-router`、嵌套路由、`Outlet` 和页面组织,一篇给你讲顺
前端·rust·前端框架
用户987409238873 小时前
用 Remotion + edge-tts 打造中文教学视频全自动流水线
前端
风骏时光牛马3 小时前
Less前端工程化实战:变量混合器与项目样式分层落地
前端
假如让我当三天老蒯3 小时前
Options API(选项式 API) 和 Composition API(组合式 API)
前端·vue.js·面试
SameX3 小时前
iOS 独立开发实践:用 MapKit + 像素渲染实现 Citywalk 轨迹地图 App「雁过留痕」
前端
_柳青杨3 小时前
一文吃透 Node.js 事件循环:从原理到 Node 20+ 重大变更
javascript·后端
skyey3 小时前
页面加载时,深色模式闪白的问题解决
前端