【问题标题】:AmCharts4 Responsive Label SizingAmCharts4 响应式标签尺寸
【发布时间】:2020-11-20 22:46:31
【问题描述】:

我正在尝试创建一个具有单个标签的仪表,用户在单击范围时可以选择该标签。标签本身应与图表的其余部分保持一致的大小。

我在 AmCharts4 中找不到本地执行此操作的方法,但想知道它是否可以与此处的解决方案结合使用 https://css-tricks.com/fitting-text-to-a-container/#just-use-svg

https://codepen.io/ChazUK/pen/ExyJdzY

const label = chart.radarContainer.createChild(am4core.Label);
label.isMeasured = false;
label.fontSize = '2rem';
label.x = am4core.percent(50);
label.horizontalCenter = 'middle';
label.verticalCenter = 'bottom';

这就是我希望文本的行为方式,字体占据相同的比例。

【问题讨论】:

    标签: label responsive amcharts font-size amcharts4


    【解决方案1】:

    我找到了解决方案。当图表改变大小时,关键是缩放标签。文档https://www.amcharts.com/docs/v4/tutorials/automatically-resize-label-to-fit-donut-inner-radius/ 中提供了一个演示,但这使得字体适合宽度而不是保持一致的大小,因此需要将比例链接到高度而不是宽度。

    const chart = am4core.create('chart', am4charts.GaugeChart);
    
    ...
    
    /*
     * Create Container to hold responsive label
     * Height dictates the font size
     */
    const container = chart.createChild(am4core.Container);
    container.horizontalCenter = 'middle';
    container.verticalCenter = 'bottom';
    container.height = am4core.percent(20);
    container.x = am4core.percent(50);
    container.y = am4core.percent(100);
    container.isMeasured = false;
    
    /*
     * Create the label as a child of container
     */
    const label = container.createChild(am4core.Label);
    label.horizontalCenter = 'middle';
    label.verticalCenter = 'bottom';
    label.x = am4core.percent(50);
    label.y = am4core.percent(100);
    label.fontSize = 30; // irrelevant, can be omitted
    label.text = 'Auto sizing text';
    
    /*
     * Update the scale of the label on the
     * sizechanged event
     */
    chart.events.on('sizechanged', () => {
      label.scale = container.bbox.height / this.label.bbox.height;
    });
    

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 2017-06-30
      • 1970-01-01
      • 1970-01-01
      • 2020-08-16
      • 2016-11-30
      • 1970-01-01
      • 2021-04-20
      • 2013-08-28
      相关资源
      最近更新 更多