2amigos / yii2-chartjs-widget
该软件包已被弃用且不再维护。未建议替代软件包。
适用于 Yii2 的 ChartJs 小部件。
3.0.1
2020-02-05 12:29 UTC
Requires
- php: >=7.3
- nnnick/chartjs: ^2.9
- yiisoft/yii2: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpunit/phpunit: ^8.5
- roave/security-advisories: dev-master
README
渲染一个 ChartJs 插件 小部件
安装
安装此扩展的首选方式是通过 composer。这需要 composer-asset-plugin,它也是 yii2 的依赖项,所以如果您已安装 yii2,则您可能已经设置好了。
运行以下命令:
composer require 2amigos/yii2-chartjs-widget:~2.0
或者将以下内容添加到您的应用 composer.json
文件的 require 部分:
"2amigos/yii2-chartjs-widget" : "~2.0"
使用方法
以下类型受到支持
- 线形图
- 条形图
- 雷达图
- 极坐标图
- 饼图
- 环形图
- 气泡图
- 散点图
- 面积图
- 混合图
以下示例使用的是 Line
类型的图表。请查看 ChartJs 插件 文档了解插件支持的其它类型。
use dosamigos\chartjs\ChartJs;
<?= ChartJs::widget([
'type' => 'line',
'options' => [
'height' => 400,
'width' => 400
],
'data' => [
'labels' => ["January", "February", "March", "April", "May", "June", "July"],
'datasets' => [
[
'label' => "My First dataset",
'backgroundColor' => "rgba(179,181,198,0.2)",
'borderColor' => "rgba(179,181,198,1)",
'pointBackgroundColor' => "rgba(179,181,198,1)",
'pointBorderColor' => "#fff",
'pointHoverBackgroundColor' => "#fff",
'pointHoverBorderColor' => "rgba(179,181,198,1)",
'data' => [65, 59, 90, 81, 56, 55, 40]
],
[
'label' => "My Second dataset",
'backgroundColor' => "rgba(255,99,132,0.2)",
'borderColor' => "rgba(255,99,132,1)",
'pointBackgroundColor' => "rgba(255,99,132,1)",
'pointBorderColor' => "#fff",
'pointHoverBackgroundColor' => "#fff",
'pointHoverBorderColor' => "rgba(255,99,132,1)",
'data' => [28, 48, 40, 19, 96, 27, 100]
]
]
]
]);
?>
插件使用示例(在饼图中显示百分比)
echo ChartJs::widget([
'type' => 'pie',
'id' => 'structurePie',
'options' => [
'height' => 200,
'width' => 400,
],
'data' => [
'radius' => "90%",
'labels' => ['Label 1', 'Label 2', 'Label 3'], // Your labels
'datasets' => [
[
'data' => ['35.6', '17.5', '46.9'], // Your dataset
'label' => '',
'backgroundColor' => [
'#ADC3FF',
'#FF9A9A',
'rgba(190, 124, 145, 0.8)'
],
'borderColor' => [
'#fff',
'#fff',
'#fff'
],
'borderWidth' => 1,
'hoverBorderColor'=>["#999","#999","#999"],
]
]
],
'clientOptions' => [
'legend' => [
'display' => false,
'position' => 'bottom',
'labels' => [
'fontSize' => 14,
'fontColor' => "#425062",
]
],
'tooltips' => [
'enabled' => true,
'intersect' => true
],
'hover' => [
'mode' => false
],
'maintainAspectRatio' => false,
],
'plugins' =>
new \yii\web\JsExpression('
[{
afterDatasetsDraw: function(chart, easing) {
var ctx = chart.ctx;
chart.data.datasets.forEach(function (dataset, i) {
var meta = chart.getDatasetMeta(i);
if (!meta.hidden) {
meta.data.forEach(function(element, index) {
// Draw the text in black, with the specified font
ctx.fillStyle = 'rgb(0, 0, 0)';
var fontSize = 16;
var fontStyle = 'normal';
var fontFamily = 'Helvetica';
ctx.font = Chart.helpers.fontString(fontSize, fontStyle, fontFamily);
// Just naively convert to string for now
var dataString = dataset.data[index].toString()+'%';
// Make sure alignment settings are correct
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
var padding = 5;
var position = element.tooltipPosition();
ctx.fillText(dataString, position.x, position.y - (fontSize / 2) - padding);
});
}
});
}
}]')
])
更多信息
ChartJs 有很多配置选项。有关更多信息,请查看 ChartJs 插件 网站。
贡献
有关详细信息,请参阅 CONTRIBUTING。
致谢
许可证
BSD 许可证(BSD)。有关更多信息,请参阅 许可证文件。
定制软件 | 网络及移动软件开发
www.2amigos.us