【发布时间】:2016-09-19 23:41:58
【问题描述】:
是否可以在多边形图中添加标签?
我想将图例中显示的标签添加到多边形图本身,但我自己不知道该怎么做(如果可能的话)。
编辑:
我像这样使用 dataLabels.formatter 添加了 dataLabel
dataLabels: {
enabled: true,
rotation: 45,
x: 20,
y: 0,
formatter: function() {
if(_.indexOf(this.series.data,this.point) == Math.floor(circle_template.steps * 0.6)) {
return "TECHIEK";
}
},
}
我还使用以下代码添加了旋转:
注意:这不是我创建的,忘记在哪里找到的
function realignLabels(serie) {
_.each(serie.points, function (j, point) {
if (!point.dataLabel) return true;
var max = serie.yAxis.max,
labely = point.dataLabel.attr('y'),
labelx = point.dataLabel.attr('x');
if (point.y / max < 0.05) {
point.dataLabel.attr({
y: labely - 20,
x: labelx + 5,
rotation: 0
});
}
});
}
Highcharts.Series.prototype.drawDataLabels = (function (func) {
return function () {
func.apply(this, arguments);
if (this.options.dataLabels.enabled || this._hasPointLabels) {
realignLabels(this);
}
};
}(Highcharts.Series.prototype.drawDataLabels));
这将导致:
正如我在 cmets 中所说,我不想使用气泡图,因为我打算像这样绘制这些图:
【问题讨论】:
-
尝试使用气泡图
-
我会通过添加一个散点系列来做到这一点,每个多边形(或每个所需的标签)都有一个点,并使用它的
dataLabel -
我不喜欢仅仅为了拥有标签而在我的图表中添加额外的数据。 @AsadSarwar,我想在我的图表中绘制更多内容,请参阅我的编辑。
标签: highcharts label polygon