我今天在一个symfony3项目中开始使用Highcharts,并使折线图运行良好。我在渲染一个饼图时遇到了麻烦,我正在试图找出它为什么不能正常工作时在我的墙上敲打。
如果我直接在我的twig模板中使用javascript渲染,我可以重现基本饼图(如this one),它看起来像预期的那样。但是,如果我尝试从我的控制器渲染,我得到一个饼图应该是空白图像。我的图表标题就在那里,所以我知道我正在渲染到正确的div。但图表是空白的。我甚至尝试过非常简单的数据结构(如docs建议的数字数组),但没有运气。这一定很简单。救命啊!
我的控制器:
try:
form.author = MyProfile.objects.get(user=request.session['username'])
except MyProfile.DoesNotExist:
form.author = None
我的树枝模板:
public function piechartAction()
{
$data = [["name"=> 'Microsoft Internet Explorer', "y"=> 56.33],
["name"=> 'Chrome', "data"=> 24.03],
["name"=> 'Firefox', "y"=> 10.38],
["name"=> 'Safari', "y"=> 4.77],
["name"=> 'Opera', "y"=> 0.91],
["name"=> 'Proprietary or Undetectable', "y"=> 0.2]];
$ob = new Highchart();
$ob->chart->renderTo('container');
$ob->chart->type('pie');
$ob->title->text('My Pie Chart');
$ob->series(array("data"=>$data));
return $this->render('dashboard/test.html.twig', [
'mypiechart' => $ob
]);
}
答案 0 :(得分:1)
我解决了这个问题。对于任何展望未来的人来说,这就是我的错误: 我对系列数据的设置不正确。
这是我的新(工作)控制器:
public function piechartAction()
{
$data = [
['Microsoft Internet Explorer', 56.33],
['Chrome', 24.03],
['Firefox', 10.38],
['Safari', 4.77],
['Opera', 0.91],
['Proprietary or Undetectable', 0.2]
];
$ob = new Highchart();
$ob->chart->renderTo('container');
$ob->chart->type('pie');
$ob->title->text('My Pie Chart');
$ob->series(array(array("data"=>$data)));
return $this->render('dashboard/test.html.twig', [
'mypiechart' => $ob
]);
}
我通过研究" cookbook"与此捆绑相关联(here);有一个深入的饼图列表。