0

過去の株式データをグラフ化する PHP スクリプトを作成しようとしています。

配列にデータがあり、次のコードを使用してgchartphpでグラフ化しようとしています:

require_once("../gchart/gChart.php");
$lineChart = new gLineChart(1000, 200);
//********PROBLEM HERE**********
$lineChart->addDataSet($yearsData); 
//******************************
$lineChart->setLegend(array('Nice figures'));
$lineChart->setColors(array('ED237A'));
$lineChart->setVisibleAxes(array('x','y'));
$lineChart->setDataRange(0,1);
$lineChart->setLegendPosition('r');
// axisnr, from, to, step
$lineChart->addAxisRange(0,0,365);
$lineChart->addAxisRange(1,0,1);

$lineChart->setGridLines(floatval(1.9),10);
$lineChart->renderImage(true);

このようなものをaddDataSetに入れると、機能してグラフが表示されます。

array(0.34234, 1, 10, .01, 20)

ただし、addDataSet に 365 個の値を持つ配列を配置すると、グラフがレンダリングされず、ページに壊れたイメージ シンボルが表示されます。ページに警告やエラーは表示されません。

助言がありますか?グラフ化できる値の数に制限はありますか?

4

1 に答える 1

1

私の知る限り、POSTには365の値で問題ありません。GET を実行すると、サイズが大きすぎる可能性が高くなります。

考えられる問題は次のとおりです
。1) 画像を出力していません。

$lineChart->renderImage(true);それ自体ではイメージを生成しません。スクリプトによって生成された png データをタグの src として設定する必要があります。上記のスクリプトが「graph.php」の場合、次のように別のファイルに表示します。

<img src='graph.php' />

2)画像の生成中にデータを画面にエコーしています。

renderImagegChart.php 内の関数コードを見ると
、最初の行は header('Content-type: image/png');

したがって、デバッグ出力 (graph.php 内) など、この呼び出しの前に画面に 1 文字でも出力すると、イメージが壊れます。たとえば、次の例では壊れたイメージが生成されます。

echo "x";
$chart->renderImage( true );
于 2011-09-28T21:38:28.190 に答える