insenseanalytics / nova-bar-metrics
Laravel Nova 的柱状图指标和频率分布工具。
Requires
- php: >=7.1.0
This package is auto-updated.
Last update: 2024-09-04 18:13:07 UTC
README
这个 Nova 工具可以让您
- 创建柱状图
- 创建频率分布图(使用饼图和/或柱状图)
柱状图指标截图
频率分布指标截图(柱状图)
频率分布指标截图(饼图)
柱状图指标
对于柱状图指标,只需像通常为 Partition
指标那样创建一个指标类。所有在 Partition
指标中可用的方法也都在 BarChartMetric
中可用!您不需要扩展 Partition
,只需像这样扩展 BarChartMetric
use Insenseanalytics\NovaBarMetrics\BarChartMetric; class BrandsPerCategory extends BarChartMetric { public function calculate(Request $request) { return $this->count($request, BrandCategory::class, 'category_name'); } }
您还可以像在 Laravel Nova 中的 TrendMetric
一样使用 suffix
、prefix
、dollars
和 euros
方法。除此之外,我们还有一个 precision
方法来设置柱状图右上角显示的 avg
指标的精度。
柱状图指标和分区指标的频率分布
要创建频率分布图,可以扩展 BarChartMetric
类或扩展 Partition
类并使用 HasFrequencyDistributions
特性。您可以使用 distributions
辅助方法创建频率分布图,如下所示
BarChartMetric 的示例
use Insenseanalytics\NovaBarMetrics\BarChartMetric; class BrandFacebookFollowers extends BarChartMetric { public function calculate(Request $request) { return $this->distributions($request, Brand::class, 'facebook_followers', 100000); } }
在上面的示例中,100000 是用于频率分布中范围的 步长
,而 facebook_followers 是按范围分布的 列
。
您可以使用 distributionsWithSteps
方法而不是提供 步长
,然后包会自动计算步长
use Insenseanalytics\NovaBarMetrics\BarChartMetric; class BrandFacebookFollowers extends BarChartMetric { public function calculate(Request $request) { return $this->distributionsWithSteps($request, Brand::class, 'facebook_followers', 15); } }
对于友好的格式化范围(K 表示千,M 表示百万,B 表示十亿),您可以使用 withFormattedRangeLabels
方法
public function calculate(Request $request) { return $this->distributions($request, Brand::class, 'facebook_followers', 100000) ->withFormattedRangeLabels(); }
Partition 指标的示例
use Laravel\Nova\Metrics\Partition; use Insenseanalytics\NovaBarMetrics\HasFrequencyDistributions; class BrandFacebookFollowers extends Partition { use HasFrequencyDistributions; public function calculate(Request $request) { return $this->distributions($request, Brand::class, 'facebook_followers', 100000); } }
要求 & 依赖
除了 Laravel Nova 包之外,没有 PHP 依赖。在客户端 JS 中,此包使用 vue
、chartist
、chartist-plugin-tooltips
和 laravel-nova
,这些也都是 Nova 本身使用的。
安装
您可以通过 composer 将此工具安装到使用 Nova 的 Laravel 应用中
composer require insenseanalytics/nova-bar-metrics
接下来,如果您没有启用包发现,您需要将提供者在 config/app.php
文件中注册。
'providers' => [ ..., Insenseanalytics\NovaBarMetrics\NovaBarMetricsServiceProvider::class, ]
用法
您可以使用控制台命令 php artisan nova:barmetric <classname>
创建新的 BarMetric 类
贡献
欢迎贡献,只要您使用 PSR-2,解释您想要解决的问题/功能,并用测试支持您的代码,您的贡献将被充分认可。快乐编码!
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可文件。