关于在echarts中插入/自定义动态文字文本

整理了一下在echarts中插入简单文本的三种方法:
1.title(Echarts - title属性设置
2.lengend (Echarts - legend属性设置)
3.graphic

1.title定义文字

效果如下图所示:
在这里插入图片描述
(这里将数字和“发布活动”分别用标题和副标题,达到样式效果)
参考链接:echarts学习之给饼图中间添加文字
(如果需要主标题副标题在同一行,可参考链接:echarts 主副标题不换行

上全部代码(复制到空页面即可):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="main" style="width: 600px ;height: 400px;"></div>
</body>
</html>
<script src="https://cdn.jsdelivr.net/npm/echarts@5.3.0/dist/echarts.js"></script>
<script>
    var myChart = echarts.init(document.getElementById('main'))
    var titleNum = 15
    var option = {
        //标题
        title: {
            text:titleNum,//主标题文本
            subtext:'共发布活动',//副标题文本
            left:'center',
            top:'54%',
            textStyle:{
            fontSize: 38,
            color:'#454c5c',
            align:'center'
            },
            subtextStyle:{
                fontFamily : "微软雅黑",
                fontSize: 16,
                color:'#6c7a89',
            }
        },

        //提示框,鼠标悬浮交互时的信息提示
        tooltip : {
            trigger: 'item',
            formatter: "{a} <br/>{b} : {c} ({d}%)"
        },
        //图例,每个图表最多仅有一个图例
        legend: {
            orient: 'vertical',
            left: 'left',
            data: ['第一部分','第二部分','第三部分','第四部分']
        },
        // 系列列表,每个系列通过 type 决定自己的图表类型
        series : [
            {
                name: '访问',
                type: 'pie',
                radius : ['40%','70%'],
                center: ['50%', '65%'],
                minAngle:'15',
                data:[
                    {name:"第一部分",value:4},
                    {name:"第二部分",value:7},
                    {name:"第三部分",value:3},
                    {name:"第四部分",value:1},
                ],
                itemStyle: {
                    normal:{
                        label:{
                            show:true,
                            formatter: "{b} :\n  {c} \n ({d}%)",
                            position:"inner"
                        }
                    }
                }
            }
        ]
    }
    
    myChart.setOption(option);// 为echarts对象加载数据
</script>

2.legend定义图例文字

效果如下图所示:
在这里插入图片描述
参考链接:echarts中自定义legend图例文字
(还看到一个讲的不错的,也可以看看:echarts中关于自定义legend图例文字
上全部代码(复制到空页面即可):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="main" style="width: 600px ;height: 400px;"></div>
</body>
</html>
<script src="https://cdn.jsdelivr.net/npm/echarts@5.3.0/dist/echarts.js"></script>
<script>
    var myChart = echarts.init(document.getElementById('main'))
    var data = [
            {value:40, name:'货币'},
            {value:20, name:'股票'},
            {value:40, name:'债券'}
        ]
    var option = {

        tooltip: {
            trigger: 'item',
            // formatter: "{a} <br/>{b}: {c} ({d}%)"
        },

        legend: {
            orient: 'vertical',
            icon:'circle',
            left:'50%',
            y: 'center',
            itemGap:30,
            itemWidth:8,
            padding:10,
            textStyle:{
                fontSize: 10
            },
            align:'left',
            data: [
                {
                    name:'货币',
                },
                {
                    name:'股票',
                },{
                    name:'债券',
                }
            ],
            formatter:  function(name){
                var total = 0;
                var target;
                for (var i = 0, l = data.length; i < l; i++) {
                total += data[i].value;
                if (data[i].name == name) {
                    target = data[i].value;
                    }
                }
                var arr = [
                    '{a|'+name+' :}{b|'+((target/total)*100).toFixed(2)+'%}'
                    
                ]
                return arr.join('\n')
            },
            textStyle:{
                rich:{
                    a:{
                        fontSize:20,
                        align:'left',
                        padding:[0,0,0,10]
                    },
                    b:{
                        fontSize:20,
                    
                        align:'right',
                        padding:[0,0,0,10],
                        lineHeight:25
                    }
                }
            },
            backgroundColor: "rgba(0,0,0,.05)"
        }, 
        series: [
            {
                name: '访问来源',
                type: 'pie',
                radius: [50, 80],
                center: ['20%', '50%'],
                label: {
                    normal: {
                        show: false
                    },
                    emphasis: {
                        show: false
                    }
                },
                data: [
                    {
                        value: 40,
                        name: '货币',
                        itemStyle: { normal: { color: "#5877F0" } }
                    },
                    { 
                        value: 20,
                        name: '股票', 
                        itemStyle: { normal: { color: "#AA9FFD" } } 
                    },
                    { 
                        value: 40, 
                        name: '债券', 
                        itemStyle: { normal: { color: "#F96481" } } 
                    }
                ]
            }
        ]
    }
    myChart.setOption(option);
</script>

如果要实现多个legend可以参考这个:echarts系列-----3 (自定义legend 控制多个legend)

3.graphic定义文字

graphic功能比较强大,不止文字,可以看文档:ECharts图形元素组件(graphic)

graphic: {
	type:'text',
	left: 10,
	top: '70%',
	style:{
		text:'成交量: ' + data.cjl,
	},
},

也可以看看这个:ECharts自定义富文本:echart添加文本_ECharts自定义富文本

原创,转载请声明

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
echarts,可以使用graphic属性来定义自定义文字。具体的方法如下: 1. 首先,在setOption({})添加graphic属性,并设置type为'text'。 2. 然后,通过left和top属性来设置文字的位置。 3. 最后,使用style属性来设置文字的内容。 以下是一个示例代码: ``` graphic: { type: 'text', left: 10, top: '70%', style: { text: '成交量: ' + data.cjl, }, }, ``` 在上述代码,我们使用graphic属性来定义了一个文字,位置在左上角,内容为'成交量: '加上data.cjl的值。你可以根据自己的需求来修改文字的位置和内容。\[2\] #### 引用[.reference_title] - *1* *2* [关于在echarts插入/自定义动态文字文本](https://blog.csdn.net/weixin_44830518/article/details/123525046)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Echarts常用的参数总结以及参数自定义示例](https://blog.csdn.net/qq_38951259/article/details/128207995)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值