在我的使用highcharts lib的应用程序中,我使用svg draw函数来处理图表加载/重绘事件。
我将所有图表数据设置为相等的值,以便所有堆栈具有相同的高度,而实际数据保存在以这种方式绘制为svg的临时数组中:
var dataFormat = getLabelByStatus(curCount, yearsObj[i].data[0]);
var css = (point.color == USERS_YEARS_COLOR) ? highchartAttr().dataLabelsBoldStyle : highchartAttr().dataLabelsStyle;
// draw text
var text = renderer.text(dataFormat, -9999, -5).add(point.label);
text.attr({
x: (lineLength - text.getBBox().width) / 3
}).css(css)
这很好但现在我想在回调函数中更改此数据。 我仍然可以访问渲染器对象,但我都无法找到我的旧打印数据进行编辑,也无法找到合适的编辑功能。
答案 0 :(得分:1)
实际上我找到了一个旁路解决方案。 在draw函数中,我添加了一个id属性,以便稍后使用jquery选择器轻松获取它并使用.text()进行编辑。
text.attr({
x: (lineLength - text.getBBox().width) / 3,
id: 'text_' + i // id added to make it modifiable
}).css(css)
更改回调函数中的文本示例:
$('#text_2').children().text(435)
答案 1 :(得分:1)
您可以将自定义文本元素保存在变量或图表中,如
chart.customText = chart.renderer.text('Series 1', 140, 140)
.attr({
rotation: -25
})
.css({
color: '#4572A7',
fontSize: '16px'
})
.add();
然后您可以访问它并使用attr({text})
更改其文字
chart.customText.attr({
text: Math.random()
})