Charts Drupal:无法使用图表模块为x轴设置标签

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' =>

我想使用Drupal Charts 7.x-2.0-rc1 API和Google Charts作为库创建一个折线图,显示股价随时间的变化。我尝试了以下代码,并用一些随机值填充了图表:

$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
    )