是否可以根据节点大小更改每个节点的字体大小。例如,如果一个节点大于一个节点,则字体大小应大于第二节点小于一个节点的字体大小,而其他节点的字体大小应小于一个节点的字体大小。
还可以设置节点的最大/最小字体大小,最小节点的最小字体大小为14px。最大节点的最大字体大小为45px。
发布于 2019-07-09 13:42:40
您可以等到节点加载(特别是它们的"ready"事件),之后您可以检查它们的measuredWidths,运行一些数学/逻辑,并为它们确定/分配一个fontSize (它们的label将自动继承),例如
series.nodes.template.events.on('ready', function(event) {
// Minimum font size 14:
// Math.max(14, number here);
// Maximum font size 45:
// Math.min(45, number here);
// combined below...
// half the width of the node, between 14 and 45.
var fontSize = Math.max(14, Math.min(45, Math.ceil(event.target.measuredWidth * .5)));
event.target.fontSize = fontSize;
});CodePen:
https://codepen.io/team/amcharts/pen/b440a4d0d82e0bd8587a2799a6e2ddb4
如果您需要检查更高级别的节点作为大小计算的一部分,则可以通过node.dataItem.parent.node访问该节点(其中第一个node通常是ForceDirectedNode,即在上面的事件中它将是event.target.dataItem.parent.node)。
https://stackoverflow.com/questions/56868925
复制相似问题