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

如何在leandrocfe/filament-apex-charts环形图中设置自定义颜色及显示值与百分比

问题解答

a) 为任意分类设置自定义颜色

在leandrocfe/filament-apex-charts的环形图中,你可以通过配置options里的colors数组指定自定义颜色,数组顺序需与数据分类的顺序一一对应。示例代码如下:

use Leandrocfe\FilamentApexCharts\Widgets\ApexChartWidget;

class CustomColorRingChart extends ApexChartWidget
{
    protected function getOptions(): array
    {
        return [
            'chart' => [
                'type' => 'donut',
            ],
            'series' => [25, 40, 35],
            'labels' => ['分类A', '分类B', '分类C'],
            // 自定义颜色,顺序匹配labels中的分类
            'colors' => ['#FF6384', '#36A2EB', '#FFCE56'],
        ];
    }
}

如果是动态从数据库获取分类数据,可以先构建对应颜色数组,确保每个分类绑定指定颜色值后,再传入colors配置项。

b) 在数据系列中同时显示数值与百分比

要实现环形图的提示框或标签同时展示数值和百分比,可通过配置tooltip或plotOptions的格式化函数实现:

方式1:在提示框(Tooltip)中显示

通过tooltip.y.formatter自定义格式化逻辑,同时返回数值和百分比:

use Leandrocfe\FilamentApexCharts\Widgets\ApexChartWidget;

class ValuePercentTooltipChart extends ApexChartWidget
{
    protected function getOptions(): array
    {
        $series = [25, 40, 35];
        
        return [
            'chart' => [
                'type' => 'donut',
            ],
            'series' => $series,
            'labels' => ['分类A', '分类B', '分类C'],
            'tooltip' => [
                'y' => [
                    'formatter' => function ($value) use ($series) {
                        $total = array_sum($series);
                        $percentage = number_format(($value / $total) * 100, 2);
                        return "{$value} ({$percentage}%)";
                    }
                ]
            ],
        ];
    }
}

方式2:在环形图标签上直接显示

如果要在环形图的内外标签直接展示,配置plotOptions.pie.dataLabels.formatter:

use Leandrocfe\FilamentApexCharts\Widgets\ApexChartWidget;

class ValuePercentLabelChart extends ApexChartWidget
{
    protected function getOptions(): array
    {
        $series = [25, 40, 35];
        $total = array_sum($series);
        
        return [
            'chart' => [
                'type' => 'donut',
            ],
            'series' => $series,
            'labels' => ['分类A', '分类B', '分类C'],
            'plotOptions' => [
                'pie' => [
                    'dataLabels' => [
                        'formatter' => function ($val) use ($total) {
                            $percentage = number_format(($val / $total) * 100, 2);
                            return "{$val} ({$percentage}%)";
                        }
                    ]
                ]
            ],
        ];
    }
}

以上配置完全兼容你当前使用的leandrocfe/filament-apex-charts v1.0.2及Filament v2版本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:52:21