【问题标题】:How to create dynamic color list for charts如何为图表创建动态颜色列表
【发布时间】:2012-04-03 09:51:41
【问题描述】:

如何为图表创建动态颜色列表

基本上我的数据库中有一个不同的值,或者每个值包含每个百分比,我需要在饼图中用不同的颜色显示这个百分比......

这是静态方式的饼图示例代码

<color value="#99CDFB"/>
<color value="#3366FB"/>
<color value="#0000FA"/>
<color value="#F8CC00"/>
<color value="#F89900"/>
<color value="#F76600"/>

但我需要像这样使用 PHP(for 循环/foreach 循环)的动态方式

$color = "";
foreach($data as $data){
   echo '<color value=".$color."/>';
}

我不知道要创建动态颜色列表,也请查看屏幕截图以进行验证

【问题讨论】:

  • 你也想要一串随机的颜色吗?
  • 但是如何和帮助绝对值得赞赏

标签: php api charts logic pie-chart


【解决方案1】:

对于随机的颜色字符串,这里:

function randColor( $numColors ) {
    $chars = "ABCDEF0123456789";   
    $size = strlen( $chars );
    $str = array();
    for( $i = 0; $i < $numColors; $i++ ) {
        for( $j = 0; $j < 6; $j++ ) {
            $str[$i] .= $chars[ rand( 0, $size - 1 ) ];
        }
    }
    return $str;
}

然后,在您的函数中,使用$colors = randColor( 6 ); 创建总共 6 种不同的颜色。之后,这是您的输出颜色方法。

foreach( $colors as $codeColor ) {
    echo "<color value=\"#{$codeColor}\" />\n";
}

【讨论】:

  • 我喜欢你的代码thanx与我分享你的经验也看到这个链接我测试过codepad.org/Awq16Wnu
【解决方案2】:

我更喜欢使用dechex() 函数的方法。首先你必须准备三个 0-255 的随机数,将它们转换为十六进制并连接成一个字符串。然后您还可以使用计算出的数字来分配文本颜色:黑色表示浅色或白色表示较深,例如:

    if( ($r + $g + $b) / 3 > 126)
        $textcolor="#000000";
    else
        $textcolor="#FFFFFF";

另一个想法是生成带阴影的随机颜色。您可以首先生成三个从 0 到 40 的随机数 - 对于第一种颜色,然后,第二种颜色将从 40 到 80,依此类推......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 2013-07-06
    相关资源
    最近更新 更多