Yii2:Flot 图表扩展 labelFormatter 用法
Yii2 : Flot charts extension labelFormatter usage
我正在尝试使用 Yii2 Flot 扩展或多或少取得成功。但是,我无法使用 labelFormatter 函数更改饼图的标签。
这是我正在使用的扩展程序:bburim/flot
这是我目前的代码,它生成了一个漂亮的图表,但我无法更改标签。
感谢任何帮助。
echo Chart::widget(
[
'data' => [
['label' => 'Series1', 'data' => [1, 12]],
['label' => 'Series2', 'data' => [1, 16]],
['label' => 'Series3', 'data' => [1, 89]],
['label' => 'Series4', 'data' => [1, 44]],
['label' => 'Series5', 'data' => [1, 38]],
],
'options' => [
'series' => [
'pie' => [
'show' => true,
'label' => [
'show' => true,
'treshold' => 0.1,
'radius' => 0.6,
'value' => 'value',
],
],
],
'grid' => [
'hoverable' => true,
],
'legend' => [
'position' => 'nw',
'show' => true,
'font' => [
'size' => 16,
],
'margin' => 10,
'backgroundOpacity' => 0.5,
],
],
'plugins' => [
Plugin::PIE,
],
'htmlOptions' => [
'class' => 'chartdiv',
],
]
);
自定义是一个非常宽泛的术语,我假设它意味着提供自定义标签文本,它非常简单直接,您只需要使用 new JsExpression()
回调函数即可正常工作
echo Chart::widget(
[
'data' => [
['label' => 'Series1', 'data' => [1, 12]],
['label' => 'Series2', 'data' => [1, 16]],
['label' => 'Series3', 'data' => [1, 89]],
['label' => 'Series4', 'data' => [1, 44]],
['label' => 'Series5', 'data' => [1, 38]],
],
'options' => [
'series' => [
'pie' => [
'show' => true,
'label' => [
'show' => true,
'treshold' => 0.1,
'radius' => 0.6,
'value' => 'value',
],
],
],
'grid' => [
'hoverable' => true,
],
'legend' => [
'labelFormatter' => new JsExpression("function(label, series) {
// series is the series object for the label
return '<a href=\"#' + label + '\">Custom Label for '+series.label+'</a>';
}"),
'position' => 'nw',
'show' => true,
'font' => [
'size' => 16,
],
'margin' => 10,
'backgroundOpacity' => 0.5,
],
],
'plugins' => [
Plugin::PIE,
],
'htmlOptions' => [
'class' => 'chartdiv',
],
]
);
附带说明一下,我不会使用该回购协议,因为自 2015 年以来所有者似乎没有反应,没有对问题进行单一回复,您可能需要自己维护或修复错误,所以最好 fork回购并使用您自己的自定义版本
我正在尝试使用 Yii2 Flot 扩展或多或少取得成功。但是,我无法使用 labelFormatter 函数更改饼图的标签。
这是我正在使用的扩展程序:bburim/flot
这是我目前的代码,它生成了一个漂亮的图表,但我无法更改标签。 感谢任何帮助。
echo Chart::widget(
[
'data' => [
['label' => 'Series1', 'data' => [1, 12]],
['label' => 'Series2', 'data' => [1, 16]],
['label' => 'Series3', 'data' => [1, 89]],
['label' => 'Series4', 'data' => [1, 44]],
['label' => 'Series5', 'data' => [1, 38]],
],
'options' => [
'series' => [
'pie' => [
'show' => true,
'label' => [
'show' => true,
'treshold' => 0.1,
'radius' => 0.6,
'value' => 'value',
],
],
],
'grid' => [
'hoverable' => true,
],
'legend' => [
'position' => 'nw',
'show' => true,
'font' => [
'size' => 16,
],
'margin' => 10,
'backgroundOpacity' => 0.5,
],
],
'plugins' => [
Plugin::PIE,
],
'htmlOptions' => [
'class' => 'chartdiv',
],
]
);
自定义是一个非常宽泛的术语,我假设它意味着提供自定义标签文本,它非常简单直接,您只需要使用 new JsExpression()
回调函数即可正常工作
echo Chart::widget(
[
'data' => [
['label' => 'Series1', 'data' => [1, 12]],
['label' => 'Series2', 'data' => [1, 16]],
['label' => 'Series3', 'data' => [1, 89]],
['label' => 'Series4', 'data' => [1, 44]],
['label' => 'Series5', 'data' => [1, 38]],
],
'options' => [
'series' => [
'pie' => [
'show' => true,
'label' => [
'show' => true,
'treshold' => 0.1,
'radius' => 0.6,
'value' => 'value',
],
],
],
'grid' => [
'hoverable' => true,
],
'legend' => [
'labelFormatter' => new JsExpression("function(label, series) {
// series is the series object for the label
return '<a href=\"#' + label + '\">Custom Label for '+series.label+'</a>';
}"),
'position' => 'nw',
'show' => true,
'font' => [
'size' => 16,
],
'margin' => 10,
'backgroundOpacity' => 0.5,
],
],
'plugins' => [
Plugin::PIE,
],
'htmlOptions' => [
'class' => 'chartdiv',
],
]
);
附带说明一下,我不会使用该回购协议,因为自 2015 年以来所有者似乎没有反应,没有对问题进行单一回复,您可能需要自己维护或修复错误,所以最好 fork回购并使用您自己的自定义版本