2013-09-16 38 views
3

我剛剛下載了PHPlot並將其包含到一個PHP文件中。我試圖得到一個示例工作,但只有一些跡象不是圖表。PHPlot不顯示圖像

我使用XAMPP和Joomla。

這說明我:

enter image description here

我需要GD啓用,只是我的GD設置截圖:

http://s1.directupload.net/file/d/3382/jv3omrny_jpg.htm

難道我做錯什麼?


我試圖將文件放在joomla外面並將其放到xampp - 它的工作原理。但是我需要在我的joomla安裝中使用該圖。

代碼:

<?php 
header('Content-Type: image/png'); 
require '/libraries/phplot-6.1.0/phplot.php'; 
$data = array(
     array('', 1800, 5), array('', 1810, 7), array('', 1820, 10), 
     array('', 1830, 13), array('', 1840, 17), array('', 1850, 23), 
     array('', 1860, 31), array('', 1870, 39), array('', 1880, 50), 
     array('', 1890, 63), array('', 1900, 76), array('', 1910, 92), 
     array('', 1920, 106), array('', 1930, 123), array('', 1940, 132), 
     array('', 1950, 151), array('', 1960, 179), array('', 1970, 203), 
     array('', 1980, 227), array('', 1990, 249), array('', 2000, 281), 
); 

$plot = new PHPlot(800, 600); 
$plot->SetImageBorderType('plain'); 

$plot->SetPlotType('lines'); 
$plot->SetDataType('data-data'); 
$plot->SetDataValues($data); 

# Main plot title: 
$plot->SetTitle('US Population, in millions'); 

# Make sure Y axis starts at 0: 
$plot->SetPlotAreaWorld(NULL, 0, NULL, NULL); 
$plot->DrawGraph(); 
// phpinfo(); 
?> 
+1

我相信你需要使用'header(「Content-type:image/png」);'在那裏如果使用PNG。用'jpg'或'jpeg'替換'png',如果輸出爲JPG格式,'gif'則換成GIF格式。然後回顯你的輸出變量。 –

+0

我在代碼中添加了該行,但它沒有改變任何內容。我的輸出變量?以爲「DrawGraph()」應該輸出圖表,記得嗎? 我試圖做這個例子:http://phplot.sourceforge.net/phplotdocs/examples.html – monti

+0

標題的位置將是至關重要的。你不能把它放在「任何地方」。我不確定把它放在哪裏,但你需要它。你將不得不繼續閱讀他們的網站。 –

回答

0

你需要設置頁眉發球,圖像就會出現在屏幕截圖中的實際數據看起來像一個圖像文件之前: 你的最後一行之前把這個英寸

header("Content-type: image/png"); 
+0

哦,弗雷德毆打它! – Joeme

+0

哈哈!不是問題。但它似乎不適用於OP。 –

+0

不用擔心 - upvoted :-) – Joeme

0

您忘了設置標題。

<?php 

header('Content-Type: image/gif'); 

require '/../../../../../../libraries/phplot-6.1.0/phplot.php'; 

$data = array(
    array('', 1800, 5), array('', 1810, 7), array('', 1820, 10), 
    array('', 1830, 13), array('', 1840, 17), array('', 1850, 23), 
    array('', 1860, 31), array('', 1870, 39), array('', 1880, 50), 
    array('', 1890, 63), array('', 1900, 76), array('', 1910, 92), 
    array('', 1920, 106), array('', 1930, 123), array('', 1940, 132), 
    array('', 1950, 151), array('', 1960, 179), array('', 1970, 203), 
    array('', 1980, 227), array('', 1990, 249), array('', 2000, 281), 
); 

$plot = new PHPlot(800, 600); 
$plot->SetImageBorderType('plain'); 

$plot->SetPlotType('lines'); 
$plot->SetDataType('data-data'); 
$plot->SetDataValues($data); 

# Main plot title: 
$plot->SetTitle('US Population, in millions'); 

# Make sure Y axis starts at 0: 
$plot->SetPlotAreaWorld(NULL, 0, NULL, NULL); 

$plot->DrawGraph(); 

?> 

警告:請注意只能設置標題一次。在header之前的任何輸出都將以「已發送標題」結束。

更多信息看http://php.net/manual/en/function.header.php

+0

它不是一個'頭部'問題,這是OP的演示路徑問題文件。 –

+0

好的,我沒有注意到這個評論。在很短的時間內給予很多評論。 – createproblem

+0

這是因爲事情在這裏可能發生得相當快!大聲笑 –

3

我使用PHPLOT與AJAX時有同樣的問題。解決方案是創建一個只有圖形代碼的新文件,例如createGraph.php。所以我在這樣的img標籤中調用這個文件:echo '<img src = "createGraph.php" />';

我也可以通過GET參數來定製圖表,如下: echo '<img src = "createGraph.php?title=My_Graph&val1=1&val2=2" />';和createGraph.php,通過GET獲取圖表的動態信息。

+0

偉大的解決方案。 – Pablo