0

今回は元のコードを使用して、以前の投稿を繰り返します。

SVG ローソク足グラフを作成していますが、適切な高さを作成するのに問題があります。

x の値は始値によって決まります。場合によっては、終値が始値よりも高いため、それに応じてポジションを調整する必要があります。

負の値を指定するとエラーが発生するため、四角形がまったくないため、始値終値の差を取り、この値を x 位置に追加する必要があります。

ここに私が今持っているコードがあります。この種の調整を効果的に実行するにはどうすればよいでしょうか?

foreach ステートメントを検討しましたが、私の php の知識は限られており、エラーが発生し続けました。

編集済み

X 値がインクリメントされます。Y 値は始値です。

    <?php

$open_price = array(5,10,15,20,25,30);
$closing_price = array (3,15,50,15,14);

$svg = '<svg id="main_graph" xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="600" style="border:1px solid black;">';

$bars;

    for ($i=0, $count = count($open_price); $i<$count; $i++)

    {        
      $calculation = ($open_price[$i])-($closing_price[$i]);                    
      $bars .= '<rect x="'. $i * 5 . '" y="' . $open_price[$i] . '" width="20" height="' . $calculation . '" fill="blue"/>';                
    };

echo $graph = $svg . $bars . '</svg>';

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Crazy Bars</title>
    <style type="text/css">

        #main_graph {margin-left: 100px;}

    </style>


</head>
<body>    
</body>
</html>
4

1 に答える 1

1

absolute value終値と始値の差の高さが必要になるでしょう。php のabs()関数を使用して計算します。

$calculation = ($open_price[$i])-($closing_price[$i]); 
$abscalc = abs($calculation);

次に、バーが負の値動きに対して下方向に表示されるようにしたい場合は、y 値も調整する必要があります。

$y = $open_price[$i];
if ($calculation < 0) $y = $closing_price[$i];
$bars .= '<rect x="' . $i * 5 . '" y="'.$y.'" width="20" height="' . $abscalc . '" fill="blue"/>'; 

このコードは x 値を一定に保ち、バーに価格帯を表示させます。バーの高さは価格差の絶対値になり、バーの y 位置は始値または終値の低い方になります。

于 2013-02-06T22:30:42.287 に答える