Charts Drupal:无法使用图表模块为x轴设置标签
我想使用Drupal Charts 7.x-2.0-rc1 API和Google Charts作为库创建一个折线图,显示股价随时间的变化。我尝试了以下代码,并用一些随机值填充了图表:Charts Drupal:无法使用图表模块为x轴设置标签,charts,drupal-7,google-visualization,Charts,Drupal 7,Google Visualization,我想使用Drupal Charts 7.x-2.0-rc1 API和Google Charts作为库创建一个折线图,显示股价随时间的变化。我尝试了以下代码,并用一些随机值填充了图表: $chart = array( '#type' => 'chart', '#chart_type' => 'line', '#chart_library' => 'google', '#title' => t(''), '#legend' =>
$chart = array(
'#type' => 'chart',
'#chart_type' => 'line',
'#chart_library' => 'google',
'#title' => t(''),
'#legend' => FALSE,
'#colors' => array('FF6600'),
'#width' => 480,
'#height' => 240,
'#data_labels' => TRUE,
'#raw_options' => array(
'vAxis' => array(
'viewWindowMode' => 'explicit',
'viewWindow' => array(
'min' => 1,
),
),
'hAxis' => array(
'showTextEvery' => 20
)
),
);
$data = array();
for ($i = 0; $i < 100; $i++) {
$data[$i] = array(date('H:i', strtotime("+$i minute")), (rand(5, 10) / 10) * 6);
}
$chart['price'] = array(
'#type' => 'chart_data',
'#title' => t('Share price'),
'#show_in_legend' => FALSE,
'#data' => $data,
'#decimal_count' => 2,
);
$shareChart['chart'] = $chart;
return drupal_render($shareChart);
$chart=数组(
“#类型”=>“图表”,
“#图表类型”=>“线条”,
“#图表库”=>“谷歌”,
#title=>t(“”),
“#图例”=>错误,
“#colors”=>数组('FF6600'),
“#宽度”=>480,
“#高度”=>240,
“#数据标签”=>TRUE,
“#原始_选项”=>数组(
“vAxis”=>数组(
“viewWindowMode”=>“explicit”,
“视图窗口”=>数组(
“min”=>1,
),
),
“hAxis”=>数组(
'showTextEvery'=>20
)
),
);
$data=array();
对于($i=0;$i<100;$i++){
$data[$i]=数组(日期('H:i',strottime(“+$i分钟”),(rand(5,10)/10)*6);
}
$chart['price']=数组(
“#类型”=>“图表数据”,
“#title”=>t(“股价”),
“#在_图例中显示”=>错误,
“#data”=>$data,
“#十进制计数”=>2,
);
$shareChart['chart']=$chart;
返回drupal_渲染($shareChart);
我得到以下输出:
我希望x轴仅显示cerain标签(在本例中间隔20分钟),但“showTextEvery”选项不起作用。你知道为什么吗?也许有另一种方法可以实现这一点?hAxis上的日期/时间值会产生一个连续的轴
'showTextEvery'
仅适用于由字符串值产生的离散轴
看
因此,您需要提供自己的ticks
也许可以这样做,首先生成数据
,以及标记
$data = array();
$ticks = array();
$x = 0;
for ($i = 0; $i < 100; $i++) {
$data[$i] = array(date('H:i', strtotime("+$i minute")), (rand(5, 10) / 10) * 6);
if ($i % 20 == 0) {
$ticks[$x] = date('H:i', strtotime("+$i minute"));
$x++;
}
}
谢谢你的回答,但这并不能解决问题,标签和以前完全一样;我已经阅读了谷歌文档,并尝试了
ticks
和showTextEvery
,但它们都不起作用,奇怪的是,当我为vAxis设置ticks
时,标签会按我的需要显示;我已经用FireBug检查了页面,我可以看到我的vAxis
自定义选项被传递到html,但没有hAxis
(尝试了一些简单的方法,比如textStyle
),所以我认为问题出在我的图表配置或Drupal的图表模块中;顺便说一句,这是我第一次使用Drupal not following,你说同时尝试了ticks和showTextEvery,它们都不起作用,但是你说当我为vAxis设置ticks时,标签按我的要求显示--最后一部分听起来像是起作用的--不管showTextEvery
在这里都不起作用,因为两个轴都没有字符串值,勾号
应该在任意一个轴上都起作用——但你必须提供你想要的值……很抱歉弄错了x轴和y轴,我已经编辑了这个问题;尽管如此,我的问题和您的解决方案仍然适用于hAxis
它们中没有一个适用于hAxis
但我能够为vAxis
设置滴答声。您是否检查了生成页面中的Drupal设置对象?这将允许您检查模块是否正确地传递了变量(或者至少如您所期望的那样)。我不确定您的意思,因为我已经使用Drupal两天了,但正如我在下面的评论中所写的:我已经用FireBug检查了页面,我可以看到我的自定义选项将vAxis传递到html,而不是hAxis(尝试了一些简单的东西,比如textStyle)所以我认为问题出在我的图表配置或Drupal的图表模块中
$chart = array(
'hAxis' => array(
'ticks' => $ticks
)