Foros del Web » Programando para Internet » PHP »

graficos tiempo dinero

Estas en el tema de graficos tiempo dinero en el foro de PHP en Foros del Web. Hola a todos, Quiero hacer un gráfico de líneas para mostrar la evolución de los precios en el tiempo. Los datos podrían ser los siguientes: ...
  #1 (permalink)  
Antiguo 18/09/2008, 04:08
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 1 mes
Puntos: 1
graficos tiempo dinero

Hola a todos,

Quiero hacer un gráfico de líneas para mostrar la evolución de los precios en el tiempo. Los datos podrían ser los siguientes:

-tiempo: 01/02/08 -Precio: 30.2
-tiempo: 06/02/08 -Precio: 40.2
-tiempo: 15/06/08 -Precio: 60.5

He intentado utilizar jpgraph pero me he vuelto loca y no lo hacía como yo quiero. necestio que me diferencie los intervalos de tiempo para mostrar las coordenadas más juntas o separadas y me coja bien los precios. En jpgraph me coge los intervalos siempre iguales, por lo que el gráfico no me sirve para hacerme una idea de nada.

Hay alguna librería o forma de hacerlo para que lo haga como digo? He buscado de todo tipo y no encuentro el ejemplo que quiero!

Gracias, Saludos!
  #2 (permalink)  
Antiguo 18/09/2008, 04:16
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: graficos tiempo dinero

No he usado jpgraph, pero igual podrías mostrar el cómo lo haces. ¿Estarás convirtiendo las fechas a formato timestamp?; se me hace, de entrada, lo lógico para su uso .

Saludos
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 18/09/2008, 04:25
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 1 mes
Puntos: 1
Respuesta: graficos tiempo dinero

Código PHP:
<?
function renombrarfecha($fecha){
$partes=explode("-",$fecha);
return (
$partes[2]."/".$partes[1]."/".substr($partes[0],-2));
}

include (
"jpgraph/jpgraph.php");
include (
"jpgraph/jpgraph_line.php");
if (!isset(
$_GET["lang"])) $_GET["lang"]="es";
// Datos de los precios
$ydata = array();
//fechas
$datax=array();

$ydata[]="";
$datax[]="";
//Relleno los arrays con los valores de la base de datos
$producto=mysql_fetch_array(mysql_query("SELECT precio, fecha FROM productos WHERE id=".$_GET["id"]));


while (
$row=mysql_fetch_array($producto)){
$ydata[]=$row["precio"];
$datax[]=renombrarfecha($row["fecha"]);
//echo $row["precio"]; 
//echo $row["fecha"];
}

/*
$merged->value->Show(true);
$merged->value->SetFormat("$%d");
*/
// Create the graph. These two calls are always required
$graph = new Graph(400,350,"auto");
//$graph->SetColor("red");
$graph->SetBackgroundImage("../../img/fondo.png",BGIMG_FILLFRAME);
$graph->SetScale("textint");
$graph->img->SetAntiAliasing();
$graph->xgrid->Show();

// Create the linear plot
$lineplot=new LinePlot($ydata);
$lineplot->SetColor("red");//color de la raya
$lineplot->SetWeight(4);//anchura de la linea
$lineplot->SetLegend("precio");//titulo del gráfico (en el medio)
$lineplot->value-> Show();//Se muestra el valor exacto en el punto

// Titulos a mostrar
$graph->img->SetMargin(60,30,20,20);
$graph->xaxis->SetTickLabels($datax);
$graph->title->Set("Gráfica de variación de precios");
$graph->xaxis->title->Set("Fechas");
$graph->yaxis->title->Set("");
//$graph->ygrid->SetFill(true,'#[email protected]','#[email protected]');




// Add the plot to the graph
$graph->Add($lineplot);

// Display the graph
$graph->Stroke();
?>
<img src="grafico_linea.php" alt="" border="0">
De todas formas he estado leyendo y no he encontrado ningún ejemplo en el que me modifique el intervalo de las coordenadas del tiempo, por eso quería saber si hay algún otro tipo de gráfico o manera de hacerlo.
  #4 (permalink)  
Antiguo 18/09/2008, 04:36
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: graficos tiempo dinero

... pues sí, no veo que "manipules" esas fechas más allá de renombrarla. Repito: supongo (me parece lógico) tienes que manejar datos numéricos (luego supongo podrás etiquetarlos), ¿probaste con los timestamps?
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 18/09/2008, 06:56
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 1 mes
Puntos: 1
Respuesta: graficos tiempo dinero

He modificado la funcion renombrar fecha a esto:

Código PHP:
function renombrarfecha($fecha){
$partes=explode("-",$fecha);
return 
mktime(0,0,0,$partes[2],$partes[1],substr($partes[0],-2));

para que devuelva el timestamp pero aún así no me coge los intervalos con espacios por fechas.
Está bien?
Yo creo que esta librería no podrá hacer estas cosas o por lo menos no así.
Alguien sabe algo mas?
  #6 (permalink)  
Antiguo 22/09/2008, 01:14
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: graficos tiempo dinero

Yo te Recomiendo la librería libchart.




Código PHP:
$chart = new PieChart(500250);

    
$dataSet = new XYDataSet();
    
$dataSet->addPoint(new Point("Mozilla Firefox (80)"80));
    
$dataSet->addPoint(new Point("Konqueror (75)"75));
    
$dataSet->addPoint(new Point("Other (50)"50));
    
$chart->setDataSet($dataSet);

    
$chart->setTitle("User agents for www.example.com");
    
$chart->render("generated/demo3.png"); 
http://naku.dohcrew.com/libchart/pages/samplecode/

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:45.