Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何将数字正确转换为多段线点_Html_Math_Svg_Polyline - Fatal编程技术网

Html 如何将数字正确转换为多段线点

Html 如何将数字正确转换为多段线点,html,math,svg,polyline,Html,Math,Svg,Polyline,我需要在多段线点中填充数据,问题是表示每个数据集的数据不应超过120 如果我有这些数字 五千 5320 5400 5100 4950 4850 我需要将它们拟合到多段线点中,最大值为120,最小值为0。 我是如何做到这一点的,我考虑了以下几种不同的方法: $total = "The Total Value Of All Datasets" $row['value'] = "The Value Of The Current Dataset"; $point = ceil (($row['valu

我需要在多段线点中填充数据,问题是表示每个数据集的数据不应超过120

如果我有这些数字

五千 5320 5400 5100 4950 4850

我需要将它们拟合到多段线点中,最大值为120,最小值为0。 我是如何做到这一点的,我考虑了以下几种不同的方法:

$total = "The Total Value Of All Datasets"
$row['value'] = "The Value Of The Current Dataset";

$point = ceil (($row['value'] / $total) * 1200); 
上面的示例将呈现非常接近的数字,这些数字并不理想,因为我需要最大的数字表示120,最小的0,其他数字介于两者之间

SVG和多段线的静态示例

    <svg viewBox="0 0 500 100" class="mktcap_spark">
    <polyline
        fill="none"
        stroke="#e9be3d"
        stroke-width="8"
        points="
        00,120
        20,60
        40,120
        60,10
        80,80
        100,80
        120,60
        140,100
        160,90
        180,80
        200, 110
        220, 10
        240, 70
        260, 100
        280, 100
        300, 40
        320, 0
        340, 100
        360, 100
        380, 120
        400, 60
        420, 70
        440, 80
        460, 20
        480, 50
        500, 30
        "
        />

    </svg>


呈现此

查找最小值和最大值
$xMin,$xMax
,然后使用线性映射

$newX = 120 * ($X - $xMin) / ($xMax - $xMin)

找到最小值和最大值
$xMin,$xMax
,然后使用线性映射

$newX = 120 * ($X - $xMin) / ($xMax - $xMin)

搜索数据,找到最低和最高的数字,并相应缩放。或者更好的方法是使用一个变换,而不使用数字。@RobertLongson变换?什么是多段线?你是说使用多项式还是样条曲线分段拟合?你的意思是使用你选择的假定多项式顺序进行最小二乘拟合吗?这些是(x,y)点对吗?您的问题我不清楚。@duffymo折线是一个HTML元素:)搜索数据,找到最低和最高数字,并相应缩放。或者更好的方法是使用一个变换,而不使用数字。@RobertLongson变换?什么是多段线?你是说使用多项式还是样条曲线分段拟合?你的意思是使用你选择的假定多项式顺序进行最小二乘拟合吗?这些是(x,y)点对吗?您的问题我不太清楚。@duffymo折线是一个HTML元素:)谢谢,这非常有效,查看线性映射必须重新排列一些变量以获得正确的视觉效果$newX=ceil(120*($X-$h)/($l-$h));谢谢,这非常有效,查看线性映射必须重新排列一些变量以获得正确的视觉效果$newX=ceil(120*($X-$h)/($l-$h));