You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Asantibanez/Livewire-Charts的extras.tooltip格式化千位数字?

解决Livewire-Charts堆叠柱状图千位分隔符显示问题

你遇到的问题根源是:如果直接把带千位分隔符的格式化字符串传给addSeriesColumn的数值参数,图表会将其解析为数字(只保留逗号前的部分),导致显示错误。而作者提到的extras.tooltip方案,核心是用原始数值保证图表计算准确性,单独通过extras配置tooltip的格式化显示内容。

修正后的代码

将addSeriesColumn的调用调整为:保留原始数值作为第三个参数,在第四个参数的extras数组中设置格式化后的tooltip文本:

$multiLineChartModel->addSeriesColumn(
    $this->hospitalName[$index],
    $key2,
    $value2, // 传递原始数字,确保堆叠计算正确
    [
        'tooltip' => number_format($value2, 2) // 配置tooltip显示带千位分隔符的数值
    ]
);

完整代码片段

$index = 1;

foreach ($this->patientCountPerHosp as $key => $value) {
    if ($key != 0) {
        foreach ($value as $key2 => $value2) {
            foreach ($this->months as $monthKey => $monthValue) {
                if ($key2 == $monthValue) {
                    $multiLineChartModel->addSeriesColumn(
                        $this->hospitalName[$index],
                        $key2,
                        $value2,
                        [
                            'tooltip' => number_format($value2, 2)
                        ]
                    );
                }
            }
        }
        // 简化index切换逻辑
        $index = ($index < count($this->hospitalName) - 1) ? ++$index : 0;
    }
    $multiLineChartModel->setColors(array_slice($this->color, 29, 10));
}

说明

  • 原始数值$value2用于图表的堆叠计算,确保数据准确性;
  • tooltip字段传入number_format($value2, 2),让鼠标悬停时显示带千位分隔符、保留两位小数的格式化数值;
  • 这样既解决了千位分隔符不显示的问题,又避免了图表解析错误导致的数值截断。

内容的提问来源于stack exchange,提问作者KRAGLR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 07:10:34