echarts实现柱状图、折线图提示信息自动轮播

本文介绍如何使用ECharts自定义markPoint实现图表上的特殊标记,并通过修改官方示例展示了如何设置自定义形状、位置及颜色,最终实现图表信息的自动轮播效果。

实现这个柱状图、折线图的头部信息自动轮播,一开始看到ui设计的这个图的时候,我第一个想到的就是echarts官网示例中的markpoint提示内容,因为这个实在看起来不像是tooltip的悬浮提示,但是markpoint是最大值、最小值与平均值,所以我把markpoint的选项pass掉了,采用label信息的定时来回显示,做完效果之后呢,官网label配置项没有对下方那个倒三角型的修饰,所以最后我又考虑起来了markpoint,是否真的只能设置最大值、最小值、平均值,还能不能设置其他值呢,网上查看了好几篇博客,最后让我找到了markpoint的配置方式,我这里贴上一个官方示例修改后的写法,估计想要这个效果的同学就懂了

option = {
    title: {
        text: '未来一周气温变化',
        subtext: '纯属虚构'
    },
    xAxis: {
        type: 'category',
        boundaryGap: false,
        data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    },
    yAxis: {
        type: 'value',
        axisLabel: {
            formatter: '{value} °C'
        }
    },
    series: [
        {
            name: '最高气温',
            type: 'line',
            data: [11, 11, 15, 13, 12, 13, 10],
            markPoint: {
                symbol:'path://M301.952 931.968a29.056 29.056 0 0 0 14.464-3.712l273.536-149.376h90.752c168.832 0 311.296-148.736 311.296-324.736V398.08A309.12 309.12 0 0 0 680.704 92.032H343.296A309.12 309.12 0 0 0 32 398.08v56.064C32 600.064 128 716.8 272 752.64v149.504a29.824 29.824 0 0 0 29.952 29.824z m0 0',
                symbolOffset:[0,-25],
                itemStyle:{
                    color:'cyan',  
                },
                data: [
                    {xAxis:3,yAxis:13,value:13},
                ]
            },
            markLine: {
                data: [
                    {type: 'average', name: '平均值'}
                ]
            }
        },
    ]
};

echarts示例官网效果

这里可以看到这个markpoint的图形形状我是用svg绘制的矢量路径,具体这个形状是怎么来的呢?当然不可能是我手绘计算svg形状的,这里‘path://’

后面的值是我在阿里巴巴矢量图标库中找到并下载copy的svg图形绘制路径,就是path标签中一长串与这个类似的字符串就行,至于symboloffset是设置这个自定义形状的偏移量,itemstyle设置它的颜色,关键在于data那里了,取消官方示例中的type类型和name属性,加上xaxis,yaxis,value这三个属性值,xaxis是横坐标数组的下标,yaxis是纵坐标数组中对应前面下标的值,value是markpoint的值。

到这里设置好后,实现自动轮播的效果,我们加个定时器,然后设置每隔一段时间后,data数组中的对象值的变动,在对其echarts进行重新绘制即可,因为我的项目是vue,所以我每次改变值的时候,都是用的this.$set对其echarts的option配置信息重新设定即可。

 

实现echarts提示信息自动轮播,可以通过以下步骤进行操作。首先,使用echarts的API action中的dispatchAction方法,结合highlight和showTip来实现散点高亮和显示提示框的效果。详情可以参考我在之前提到的echarts API action之dispatchAction的内容。其次,在设置好上述效果之后,可以添加一个定时器,通过每隔一段时间修改data数组中对象的值,然后重新绘制echarts实现自动轮播的效果。如果项目是使用Vue开发的,可以使用this.$set来重新设定echarts的option配置信息。最后,为了在鼠标移除操作的时候继续之前的轮播,可以监听鼠标移出事件,当鼠标移出时,重新设置定时器来进行轮播操作。具体的操作可以参考我之前提到的示例代码中的mouseout事件的处理方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [echarts散点图实现轮播](https://blog.csdn.net/weixin_43927699/article/details/108255873)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [echarts实现柱状图折线图提示信息自动轮播](https://blog.csdn.net/qq_38948398/article/details/111143507)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
实现echarts柱状图循环效果,可以按照以下步骤进行操作: 1. 首先,使用`echarts.init`方法初始化echarts实例,并指定需要渲染图表的DOM元素的ID。例如,`var myChart = echarts.init(document.getElementById(Chartid));` 2. 接下来,设置图表的标题、图例和坐标轴等配置。确保在配置中包含tooltip的配置,以使工具方法生效。例如,`myChart.setOption(option)`后,调用`tools.loopShowTooltip(myChart, option, { loopSeries: true })`。其中,`myChart`是echarts实例,`option`是图表的配置信息。 3. 然后,使用`myChart.setOption`方法设置图表的配置。包括标题、提示框、图例、x轴、y轴和数据系列等。例如: ``` myChart.setOption({ title: { text: title }, tooltip: {}, legend: { orient: 'vertical', x: 'right', data: ['版本A', '版本B'] }, xAxis: { data: [] }, yAxis: {}, series: [ { name: '版本A', type: 'bar', data: [] }, { name: '版本B', type: 'bar', data: [] } ] }); ``` 4. 最后,通过异步加载数据,并循环更新图表。具体的数据加载和循环更新方法可以根据实际需求进行编写。 这样,就可以实现echarts柱状图循环效果了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [echarts中数据的循环](https://blog.csdn.net/AlvinPanda/article/details/64922813)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [echarts图表柱状图折线图动态轮播tooltip窗](https://download.csdn.net/download/Dyc_SE/86399277)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杀猪刀-墨林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值