Amcharts地图标签不显示问题
Amcharts地图标签不显示问题
嘿,我来帮你搞定这个佛罗里达飞镖联赛地图的标签不显示问题!
你遇到的情况其实挺常见——AmCharts 5的地图多边形默认不会自动显示标签,哪怕你已经确认数据传对了,也得手动配置标签的显示逻辑才行。
结合你给出的代码片段,我给你调整添加了标签相关的配置,你可以参考试试:
// Create root and chart var root = am5.Root.new("chartdiv"); // Set themes root.setThemes([ am5themes_Animated.new(root) ]); var chart = root.container.children.push( am5map.MapChart.new(root, { panX: "rotateX", projection: am5map.geoAlbersUsa() }) ); // Create polygon series var polygonSeries = chart.series.push( am5map.MapPolygonSeries.new(root, { geoJSON: am5geodata_region_usa_flLow }) ); polygonSeries.mapPolygons.template.setAll({ tooltipText: "{name}", fill: am5.color(0x636363) // 先给多边形设置底色,方便和标签区分 }); // 关键步骤:给每个多边形添加居中标签 polygonSeries.mapPolygons.template.setup = function(target) { target.children.push(am5.Label.new(root, { text: target.dataItem.get("name"), // 读取geoJSON里的地区名称字段 centerX: am5.p50, // 水平居中对齐多边形 centerY: am5.p50, // 垂直居中对齐多边形 fontSize: 9, fill: am5.color(0xffffff) // 设置标签颜色,和多边形底色形成对比 })); }; // 也可以用另一种方式配置(二选一即可):直接设置系列的标签模板 // polygonSeries.labels.template.setAll({ // text: "{name}", // centerX: am5.p50, // centerY: am5.p50, // fontSize: 9, // fill: am5.color(0xffffff), // visible: true // });
还有几个小细节要注意:
- 一定要保证标签颜色和多边形底色有明显对比,不然标签可能会“隐身”在多边形里
- 如果标签位置不对,可以用
dx/dy属性微调偏移量,比如dx: 5就是向右偏移5像素 - 确认你的geoJSON数据里的地区名称字段确实是
name,如果是其他字段(比如regionName),记得把代码里的{name}改成对应字段名
这样修改后,标签应该就能正常显示在对应的多边形上方啦!
备注:内容来源于stack exchange,提问作者Diamond D
相关产品推荐
相关产品推荐

