如何在 amcharts 图例中应用水平对齐?

Posted

技术标签:

【中文标题】如何在 amcharts 图例中应用水平对齐?【英文标题】:How to apply horizontal alignment in amchrts legend? 【发布时间】:2019-08-11 07:01:57 【问题描述】:

我正在使用 amcharts 创建图表,图例在单独的容器中。

申请选项

chart.legend.align = 'right'

没有效果

Codepen

【问题讨论】:

你能附上一张你想要达到什么目的的图片吗?图表左侧的图例项列? 【参考方案1】:

如果您要对齐图例的内容,即图例项向右对齐,而不是整个图例本身(我假设这是因为图例位于外部自定义 <div> 中,并且这是直接从我们关于该主题的指南中摘录的。如果您还有其他意思,请告诉我们。),然后您必须更改其layout,然后将其内容与直接通过contentAlign。例如

// Align legend items to the right
chart.legend.layout = "vertical";
chart.legend.contentAlign = "right";

这是一个演示:

https://codepen.io/team/amcharts/pen/0aa8b7741a25a86fafa48b747077b8e3

我强烈建议您查看我们的指南"Working with Containers",其中包含有关在 amCharts v4 中进行布局的各种详细信息。此外,一旦将所有内容都向右对齐,图例仍将被锁定在其 html 包装器的高度,即在您的情况下为 150px,无法访问其余内容。上面的演示是我们"Making the external legend scrollable" guide 中的一个分支。

【讨论】:

是的,这正是我要找的,非常感谢!【参考方案2】:

legend.align 没有效果,因为图例的宽度是100%

这是由父容器在布局其子容器时使用的。

你应该将内容与legend.contentAlign对齐:

chart.legend.contentAlign = 'right';

Here我fork了你的代码笔来显示结果。

代码笔中的另一个错误是legend.valign的值

有效值为:

"顶部" | “中间” | “底部” | “无”

见VerticalAlign。

所以你应该这样设置:

chart.legend.valign = 'middle';

【讨论】:

以上是关于如何在 amcharts 图例中应用水平对齐?的主要内容,如果未能解决你的问题,请参考以下文章

Amcharts - 增加图例名称和价值之间的差距

AmCharts v3 有选择地隐藏图表图例项(不是切换图表)

删除饼图图例中名称和百分比之间的空格 (amcharts4)

如何更改 Highchart 中图例的布局和对齐方式?

amCharts 4:仅在截断的(带省略号)值上显示图例工具提示

R语言ggplot2可视化:ggplot2可视化分组箱图,将可视化图像的图例(legend)放置在图像底部左边左对齐其中图例信息水平平铺​ (position legend bottom left)