gchartphp addDataSet()的最大限制



我试图创建一个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个值的数组,则图形不呈现,页面显示破碎的图像符号。此页面未显示任何警告或错误。

有什么建议吗?你能画多少个值是有限制的吗?

对于POST来说,365个值应该很好。如果您执行GET操作,则更有可能出现大小过大的情况。

可能的问题是:
1)你没有输出图像。

$lineChart->renderImage(true);本身不会产生图像。您需要将脚本生成的png数据设置为标记的src。因此,如果上面的脚本是'graph.php',那么您将把它显示在一个单独的文件中,如:

<img src='graph.php' />

2)在生成图像时,您正在向屏幕回显数据。

如果你看一下gChart.php里面的renderImage函数代码,
第一行是header('Content-type: image/png');

因此,即使在此调用之前向屏幕输出一个字符,例如调试输出(在graph.php中)也会破坏图像。例如,下面的代码将生成一个破碎的图像。

echo "x";
$chart->renderImage( true );

相关内容

  • 没有找到相关文章

最新更新