echarts环状图,中间随机显示一个数据和相对应的数据名,但是我把鼠标放到另外一个数据上,就会出现之间显示的文字重叠在一起,没有更换成我指的数据
通过鼠标事件处理,移入隐藏label
,移出显示
myChart.on('mouseover', 'series.pie', e => {
myChart.setOption({
series: {
label: {
show: false
}
}
})
})
myChart.on('mouseout', 'series.pie', e => {
myChart.setOption({
series: {
label: {
show: true
}
}
})
})
可以到官网引用类似插件,里面有一样的图表
引用 皆我百晓生 小程序回复内容作答:
要实现鼠标指向数据时中间文字的更换,可以使用echarts的事件监听机制。具体步骤如下:
在echarts的配置项option中,添加一个tooltip选项,用来显示鼠标悬浮时的提示信息。例如:
tooltip: {
trigger: 'item',
formatter: '{b} : {c}' // 显示数据项的名称和值
},
添加一个事件监听器,监听鼠标悬浮到数据项时的事件。例如:
myChart.on('mouseover', function(params) {
// params中包含当前悬浮的数据项的相关信息
// 在这里修改中间文字的显示内容
});
在事件监听器中,根据当前悬浮的数据项信息,更新中间文字的显示内容。例如:
myChart.on('mouseover', function(params) {
var name = params.name; // 当前悬浮数据项的名称
var value = params.value; // 当前悬浮数据项的值
// 在这里根据name和value更换中间文字的显示内容
});
根据具体的需求和数据结构,你可以通过params对象获取当前悬浮数据项的名称和值,然后更新中间文字的显示内容。
【以下回答由 GPT 生成】
您好,
要解决您的问题,您需要使用echarts的事件处理机制来监听鼠标悬停事件,并在鼠标悬停在特定数据时,动态修改中间文字的内容。
下面是一个示例代码,用来演示如何实现您希望的效果:
// 初始化echarts图表
var myChart = echarts.init(document.getElementById('chart'));
// 定义环状图的数据
var data = [
{value: 335, name: '数据1'},
{value: 310, name: '数据2'},
{value: 234, name: '数据3'},
{value: 135, name: '数据4'},
{value: 1548, name: '数据5'}
];
// 定义中间文字的初始内容
var centerText = '中间文字';
// 配置echarts选项
var option = {
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b}: {c} ({d}%)"
},
series: [
{
name:'访问来源',
type:'pie',
radius: ['40%', '55%'],
center: ['50%', '50%'],
avoidLabelOverlap: false,
label: {
normal: {
show: false,
position: 'center'
},
emphasis: {
show: true,
textStyle: {
fontSize: '30',
fontWeight: 'bold'
}
}
},
labelLine: {
normal: {
show: false
}
},
data: data
}
]
};
// 设置初始的中间文字
option.graphic = [{
type: 'text',
left: 'center',
top: '45%',
style: {
text: centerText,
textAlign: 'center',
fill: '#333',
fontSize: 18
}
}];
// 将配置项设置给echarts图表
myChart.setOption(option);
// 监听鼠标悬停事件
myChart.on('mouseover', function(params) {
if (params.seriesType === 'pie') {
// 获取当前悬停的数据的名称和值
var name = params.name;
var value = params.value;
// 动态更新中间文字的内容
option.graphic[0].style.text = name + ': ' + value;
// 更新echarts配置
myChart.setOption(option);
}
});
您只需将您的数据和图表容器ID替换成适合自己的即可。
使用这段代码,在鼠标悬停在某个数据上时,中间文字会根据悬停的数据动态变换。
【相关推荐】