挪威/诺瓦条形图度量

一个用于条形图指标和频率分布的Laravel Nova工具。

1.02 2020-10-01 04:04 UTC

This package is auto-updated.

Last update: 2024-09-29 05:49:38 UTC


README

License Latest Stable Version Scrutinizer Code Quality Total Downloads Monthly Downloads

Nova工具允许您

  • 创建条形图
  • 创建频率分布图(使用饼图和/或条形图)

条形图指标截图

screenshot of the backup tool

频率分布指标截图(条形图)

screenshot of the backup tool

频率分布指标截图(饼图)

screenshot of the backup tool

条形图指标

对于条形图指标,只需创建一个与通常为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一样使用suffixprefixdollarseuros方法。除此之外,我们还有一个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();
}

分区指标示例

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中,此包使用vuechartistchartist-plugin-tooltipslaravel-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)。有关更多信息,请参阅许可证文件