如何使工具提示跟随使用图表绘制的饼图中的光标?
当前显示了一个工具提示,但是它只是停留在某个位置,直到光标直接移到该位置。我需要的是一个与光标一起移动的工具提示。我可以位于图表顶部或其他任何位置的特定位置。
演示:https://jsfiddle.net/kg7Ldj1o/
我需要类似径向条形图中所示的内容。http://recharts.org/en-US/api/RadialBarChart 工具提示会随光标一起移动。
<PieChart width={800} height={400} onMouseEnter={this.onPieEnter}>
<Tooltip />
<Pie
data={data}
cx={420}
cy={200}
startAngle={180}
endAngle={0}
cornerRadius={40}
innerRadius={60}
outerRadius={80}
fill="#8884d8"
paddingAngle={-15}
>
{data.map((entry, index) => (
<Cell
fill={
index === 0 || index === data.length - 1
? COLORS[index % COLORS.length]
: 'transparent'
}
stroke={
index === 0 || index === data.length - 1
? COLORS[index % COLORS.length]
: 'transparent'
}
/>
))}
</Pie>
<Pie
data={data}
cx={420}
cy={200}
startAngle={180}
endAngle={0}
cornerRadius={0}
innerRadius={60}
outerRadius={80}
fill="#8884d8"
>
{data.map((entry, index) => (
<Cell
fill={
index === 0 || index === data.length - 1
? 'transparent'
: COLORS[index % COLORS.length]
}
stroke={
index === 0 || index === data.length - 1
? 'transparent'
: COLORS[index % COLORS.length]
}
/>
))}
</Pie>
</PieChart>;
答案 0 :(得分:1)
您可以使用事件中提供的chartX和chartY监听onMouseMove
并更新.recharts-tooltip-wrapper
元素的左上偏移。
我已经在下面添加了一个函数onPieEnter
,
onPieEnter(e){
console.log(e);
if(e){
let toolTipWrapper = document.getElementsByClassName("recharts-tooltip-wrapper")[0];
toolTipWrapper.style.transition = 'transform 400ms ease 0s';
toolTipWrapper.style.transform = "translate("+ (e.chartX + 10) +"px, "+ (e.chartY + 10) +"px)";
}
}