2015-01-23 5 views
0

Я попытался сгенерировать линию с использованием jpgraph. Он хорошо работает, когда массив задается вручную. Но когда я устал получать данные из файла csv, генерируется только сюжет, но строки данных не показаны. Я не смог найти ничего плохого в моем входе и отображения значений на печати массива,Входные данные из csv doessnt work for jpgraph line plot

print_r ($data[2]); printing displays Array ([1] => 22.7625 [2] => 7.1984) 

Поиск руководство не решить мою проблему. Кто-нибудь знает причину?

информация: Вот как я извлекал данные из CSV-файла,

$handle = fopen("/var/www/html/xx/yy/myfile.csv", "r"); 

$data[$i] = fgetcsv($handle, ","); 

я удалил первый элемент, так как он является идентификатором.

unset($data[2] [0]); 

Edit:

<?php 
include ("../jpgraph.php"); 
include ("../jpgraph_line.php"); 

$handle = fopen("/var/www/html/xx/yy/myfile.csv", "r"); 

for ($i=0;$i<=10;$i++) 
{ 
    $data[$i] = fgetcsv($handle, ","); 
    unset($data[2] [0]); 
}  

$graph = new Graph(350, 250,"auto");  
$graph->SetScale("textlin"); 

$lineplot =new LinePlot($data[2]); 
$lineplot ->SetColor("blue"); 
$graph->Add($lineplot); 
$graph->Stroke(); 
?> 
+0

Итак, сравните ручные данные с данными csv, какая разница? –

+0

Нет разницы в наборе данных. Если я использую жесткий код данных, например $ data = array (11,3, 8,12,5, 1,9, 13,5,7); то это работает. @u_mulder – Snijesh

+0

Можете ли вы опубликовать немного больше своего кода? $ data [$ i] предполагает, что у вас есть счетчик, работающий в каком-то цикле. – BigScar

ответ

0

Хотя я не могу объяснить, почему, снята с охраны() не является вашим другом здесь.

Вот пример, который удаляет первый элемент каждой строки из файла csv и отображает следующие три элемента. Он работает. И спасибо, что ознакомил меня с JPGraph.

<?php 
include "jpgraph.php"; 
include "jpgraph_line.php"; 
$handle = fopen("mike.csv", "r"); 
    for ($i=0;$i<=10;$i++) 
    { 
    $temp = fgetcsv($handle, ","); 
    // $temp[0] is ignored 
    $data[$i][0] = $temp[1]; 
    $data[$i][1] = $temp[2]; 
    $data[$i][2] = $temp[3]; 
    }  
$graph = new Graph(350, 250);  
$graph->SetScale("textlin"); 
$lineplot =new LinePlot($data[2]); 
$lineplot ->SetColor("blue"); 
$graph->Add($lineplot); 
$graph->Stroke(); 
?> 
+0

Спасибо, что потратили время @BigScar. Теперь это работает ... – Snijesh