【问题标题】:Different Colors for Google ColumnChartGoogle ColumnChart 的不同颜色
【发布时间】:2015-09-07 11:31:40
【问题描述】:

我正在尝试使用来自 php 代码的数据作为传递给绘图函数的数组来绘制图形。颜色显示我是否使用饼图,但不显示柱形图。如何让条显示不同的颜色?

这是我的脚本:

<script type="text/javascript">
  google.load("visualization", "1.1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);
  function drawChart() {
    var data = google.visualization.arrayToDataTable(<?php 

    $baseText = '';
    $trimmedPercentbf = '';
$js_arraybf = "['Percentage','$baseText'],";

    $counter = 0;

    $getBasicFunctionality = [SQL Query Here];
        while ($basicFunctionality = dbfetch($getBasicFunctionality)):

            $baseTextbf = $basicFunctionality["sat_lower_level_text"];


    $weightsTotal = $basicFunctionality["total"];

            $average = $basicFunctionality["weightAVG"];
            $countTotal = $basicFunctionality["total_users"];

            $counter += $countTotal;

            $percentage = ($average)/5 * 100;
            $trimmedPercentbf = number_format($percentage, $decimals=2);




                    if($counter != $countTotal):
                        $sep = ",";
                    else:
                        $sep = ",";
                    endif;


                        $js_arraybf .= "[ '$baseTextbf', $trimmedPercentbf ]".$sep;


                endwhile;


                                    $js_array = rtrim($js_arraybf, ', ');

                print "[".$js_array."]";






    ?>);

    var chart = new google.visualization.ColumnChart(document.getElementById('community'));
    chart.draw(data, {width: 800, height: 800, is3D: true,/*vAxis: {format:'#%'},pieHole: 0.4,*/colors: ['#242424','#437346','#97D95C','#7D252B','#EB9781','#FFD2B5','#4A4147','#3796c8', 'red','yellow','green', 'blue'],axisFontSize:12, title: '2.Leadership Management & Communication'});
  }
</script>

// php代码中以数组形式传过来的样本数据如下: var data = google.visualization.arrayToDataTable([['Percentage',''],['label1', 51.43],['label2', 60.00],['label3', 66.67],['label4', 60.00] ,[ 'label5', 66.67 ],[ 'label7', 100.00 ],[ 'label8', 100.00 ],[ 'label9', 100.00 ],[ 'label10', 100.00 ],[ 'label11', 100.00 ],[ 'label12', 80.00 ],[ 'label13', 40.00 ]]);

//当前只有一种颜色的图如下:

//我需要图表看起来像下面我使用 jqbargraph 的图表,但不能使用 jq,因为它会导致我的长标签出现布局问题:

【问题讨论】:

  • 生成的饼图和条形图是什么样的?你能分享一些虚拟输入数据吗?
  • var data = google.visualization.arrayToDataTable([['Percentage',''],[ 'label1', 51.43 ],[ 'label2', 60.00 ],[ 'label3', 66.67 ] ,[ 'label4', 60.00 ],[ 'label5', 66.67 ],[ 'label7', 100.00 ],[ 'label8', 100.00 ],[ 'label9', 100.00 ],[ 'label10', 100.00 ],[ 'label11', 100.00 ],[ 'label12', 80.00 ],[ 'label13', 40.00 ]]);
  • var chart = new google.visualization.ColumnChart(document.getElementById('community')); chart.draw(data, {width: 800, height: 800, is3D: true,vAxis: {format: '#\'%\''},/*pieHole: 0.4,*/colors: ['#242424', '#437346','#97D95C','#7D252B','#EB9781','#FFD2B5','#4A4147','#3796c8','红色','黄色','绿色','蓝色' ],axisFontSize:12, title: '2.Leadership Management & Communication'}); }
  • 最好使用此信息更新问题并添加结果图像的屏幕截图。
  • 已按要求更新问题

标签: javascript php google-visualization


【解决方案1】:

您通过colors-选项定义的颜色适用于列。

当您想为您的情况设置行的颜色时,您必须通过样式列进行设置,例如:

var data = new google.visualization.arrayToDataTable([
    ['Percentage', '',{ role: 'style' }],
    ['label1',  51.43, '#242424'],
    ['label2',  60.00, '#437346'],
    ['label3',  66.67, '#97D95C'],
    ['label4',  60.00, '#7D252B'],
    ['label5',  66.67, '#EB9781'],
    ['label7',  100.00,'#FFD2B5'],
    ['label8',  100.00,'#4A4147'],
    ['label9',  100.00,'#3796c8'],
    ['label10', 100.00,'red'],
    ['label11', 100.00,'yellow'],
    ['label12', 80.00, 'green'],
    ['label13', 40.00, 'blue']
]);

https://jsfiddle.net/qdaw7ssx/

【讨论】:

  • 感谢您的回答...但我的问题实际上是因为我从数据库表中动态选择标签值。它们被传递到一个数组中,然后像上面那样回显(打印“[”.$js_array.“]”;)。标签不是静态的。希望你能理解我?
  • 当您想要不同颜色的行时,您必须根据需要提供数据,因此您需要修改 PHP 脚本的输出
  • 好的,谢谢...但是我有什么遗漏吗?如果我只是将 'var chart = new google.visualization.ColumnChart' 更改为 'var chart = new google.visualization.PieChart' ,饼图上会显示颜色,原样......为什么它不能与 ColumnChart 一起使用?
  • 就像我说的,ColumnChart 中的颜色选项适用于列(系列),而不是行。一个 ColumnChart 可能有多个数据列,一个 PieChart 只有 1 个。colors-option 不会被忽略,但它不会按照您的想法工作。当您查看您的第一个屏幕截图时,您会注意到这些条不是蓝色的(它是默认的条颜色)。它们在 #242424 中着色 ....这是您颜色选项中的第一种颜色。当您有更多数据列(系列)时,其他颜色也会产生影响:jsfiddle.net/qdaw7ssx/9
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-03
  • 1970-01-01
  • 1970-01-01
  • 2012-08-24
  • 1970-01-01
相关资源
最近更新 更多