gpt4 book ai didi

pChart 雷达图,最少 1

转载 作者:行者123 更新时间:2023-12-04 06:42:50 29 4
gpt4 key购买 nike

我正在使用类似于此示例的雷达图:
https://pchart.net/doc.draw.radar.html

我的数据范围从 1 分到 4 分,所以我配置了一些选项:

$options = array(
'SegmentHeight' => 1,
'Segments' => 3,
'FixedMax' => 4
);

仍然存在一个问题:即使我的最低分数是 1,雷达图的中心值始终为 0。

如何将图表中的最小值更改为 1?

最佳答案

您可以创建一个“最小”值,但前提是您愿意 fork 库并进行一些更改。

比赛计划

最简单、最直接的方法是创建一个新选项,我将其命名为 FixedMin .如果且仅当提供了这个新选项(并且满足非自动分割的其他标准),您才能达到您所寻求的效果。

如果您想在不提供 SegmentHeight 的情况下生成最小值, Segments , 和 FixedMax ,您还需要修改 pImage::computeScale当未提供这些配置值时,它会生成这些配置值。

我们需要做三个改变:

  • 创建一个名为 FixedMin 的新配置选项
  • 调整值的位置
  • 调整标签文字

  • 让我们编码
    drawRadar方法保存在 class/pRadar.class.php .打开它。让我们来看看我们的游戏计划。

    第一 ,让我们添加配置选项。我会将它与其他人(第 ~38 行)一起添加,如下所示:
     $FixedMin      = isset($Format["FixedMin"]) ? $Format["FixedMin"] : 0;

    让我们来 FixedMin默认为 0因为这是默认的 pChart 行为。

    第二 ,我们需要以某种方式欺骗 pChart 重新定位这些较大的值,好像它们更小以适应偏移 FixedMin创造。

    我们可以在函数计算绘图位置的地方(行~319)做到这一点。找到循环 foreach($DataS["Data"] as $Key => $Value) (线〜328)。在这里,我们将修改 $Value通过在循环顶部添加此行:
    $Value -= $FixedMin; // Let's offset the perceived value by our new minimum

    第三 ,我们需要更改轴标签的文本值。里面的条件是 $DrawAxisValues包含,你会发现这行代码(第 ~255 行):
    $Label  = ($j * $SegmentHeight)

    这很好用;对于每个段,它生成一个标签,该标签是段乘以高度(例如,4 个 20 个单位的段应生成 4 个标签:20、40、60、80)。但它不适用于我们的 FixedMin .让我们重用偏移量。在这种情况下,我们增加了偏移量,以产生最小值的错觉。用这一行替换该行:
    $Label  = ($j * $SegmentHeight) + $FixedMin;

    回顾

    我们为最小段创建了一个新的配置变量;对于每个值,我们减去最小值(或偏移量);并通过添加最小值(或偏移量)来重新调整轴标签。

    注意事项

    我们只修改了雷达图;其他图表类型不会受到影响。不要尝试使用值低于配置的最小值的数据。这样做的危险可能是作者没有包含此选项的原因。

    展示并演讲

    我无权访问您的数据集,因此我使用了 pChart 示例并增加了“申请审查”示例,因此所有分数都在 20 到 40 之间。
    // FixedMin set to 0, "default" behavior
    $Options = array(
    'SegmentHeight' => 20,
    'Segments' => 2,
    'FixedMax' => 40,
    'FixedMin' => 0, // And so on...

    Default behavior

    正如预期的那样,现在让我们看看我们的新代码......
    // FixedMin set to 20, smaller SegmentHeight
    $Options = array(
    'SegmentHeight' => 10,
    'Segments' => 2,
    'FixedMax' => 40,
    'FixedMin' => 20, // And so on...

    With a minimum of 20

    达达。

    关于pChart 雷达图,最少 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20680041/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com