alterar código de phplot

290 views
Skip to first unread message

Renato Rudnicki

unread,
Jun 16, 2009, 2:44:19 PM6/16/09
to Tche...@googlegroups.com
Ola Pessoal.

Gostaria de saber se alguem de vcs conhecem alguma forma de alterar o codigo do phplot, para quando gerar gráficos, ele gerar o numero inteiro e não separado por (.) ponto. Para entenderem melhor, segue um link de gráfico como exemplo: http://www.plugmasters.com.br/sys/materias/217/1/Gerando-gr%E1fico-com-PHP
O que eu quero, eh no gráfico ele gere percentuais com números inteiros (6, 9, 5 etc) e não com (3.1, 5.9, 4.0 etc)....

--
[]'s,
Renato

Inteligência tem limite, mas burrice é infinita.  

http://br.youtube.com/profile?user=renatorudnicki&view=playlists

http://i39.tinypic.com/i4qwi8.jpg

Jeronimo Zucco

unread,
Jun 16, 2009, 3:56:15 PM6/16/09
to Tche...@googlegroups.com
2009/6/16 Renato Rudnicki <renato....@gmail.com>

Ola Pessoal.

Gostaria de saber se alguem de vcs conhecem alguma forma de alterar o codigo do phplot, para quando gerar gráficos, ele gerar o numero inteiro e não separado por (.) ponto. Para entenderem melhor, segue um link de gráfico como exemplo: http://www.plugmasters.com.br/sys/materias/217/1/Gerando-gr%E1fico-com-PHP
O que eu quero, eh no gráfico ele gere percentuais com números inteiros (6, 9, 5 etc) e não com (3.1, 5.9, 4.0 etc)....

--
[]'s,
Renato


http://phplot.sourceforge.net/phplotdocs/SetPrecisionX.html

e

http://phplot.sourceforge.net/phplotdocs/SetPrecisionY.html

--
Jeronimo Zucco
http://jczucco.blogspot.com

Rudinei Dias

unread,
Jun 16, 2009, 3:25:41 PM6/16/09
to Tche...@googlegroups.com
se não me engano com $plot->SetYTickIncrement(Value);

veja exemplo em
http://phplot.sourceforge.net/phplotdocs/ex-lines2.html


2009/6/16 Renato Rudnicki <renato....@gmail.com>:
--
-------------------------------------------------------------
Rudinei Dias

Rudinei Dias

unread,
Jun 17, 2009, 8:29:00 AM6/17/09
to Tche...@googlegroups.com
O setPrecision somente vai ajustar o arredondamento da exibição dos
valores nos eixos X e Y. O TickIncrement define os intervalos entre
cada valor nos eixos X eY do gráfico. Usar em conjunto os dois é o
mais interessante.

Vide exemplo:
<?php
# PHPlot Example: Line graph, 2 lines
require_once 'phplot/phplot.php';

# Generate data for:
# Y1 = sin(x)
# Y2 = cos(x)
$end = M_PI * 2.0;
$delta = $end / 20.0;
$data = array();
for ($x = 0; $x <= $end; $x += $delta)
$data[] = array('', $x, sin($x), cos($x));

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

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

$plot->SetTitle('Line Plot, Sin and Cos');

$plot->SetLegend(array('sin(t)', 'cos(t)'));

$plot->SetPlotAreaWorld(0, -5, 6.8, 5);

$plot->SetXDataLabelPos('none');

// TESTE ESTE, DEPOIS COMENTE E
$plot->SetXTickIncrement(M_PI / 8.0);
$plot->SetYTickIncrement(0.2);
$plot->SetPrecisionX(3);
$plot->SetPrecisionY(1);

// DEPOIS DE COMENTAR O PARAGRAFO ACIMA, TESTE ESTE
/*
$plot->SetXTickIncrement(1.0);
$plot->SetPrecisionX(0);
$plot->SetYTickIncrement(1.0);
$plot->SetPrecisionY(0);
*/

$plot->SetXLabelType('data');
$plot->SetYLabelType('data');

# Draw both grids:
$plot->SetDrawXGrid(True);
$plot->SetDrawYGrid(True);

$plot->DrawGraph();
?>

2009/6/16 Jeronimo Zucco <jcz...@gmail.com>:
--
-------------------------------------------------------------
Rudinei Dias

renator

unread,
Jun 17, 2009, 10:46:01 AM6/17/09
to TcheLinux
obrigado pessoal.
Rudinei, se eu testo o seu exemplo, recebo o seguinte erro:

Fatal error: Call to undefined method PHPlot::SetXDataLabelPos() in C:
\xampp\htdocs\inter\tchelinux.php on line 27


se eu comento a linha 27 ( $plot->SetXDataLabelPos('none'); ) recebo
o seguinte erro:

Fatal error: Call to undefined method PHPlot::SetXTickIncrement() in C:
\xampp\htdocs\inter\tchelinux.php on line 30

Não consegui entender e resolver o erro. Você tem alguma ideia ?

[]'s,
Renato
> 2009/6/16 Jeronimo Zucco <jczu...@gmail.com>:

renator

unread,
Jun 17, 2009, 10:56:05 AM6/17/09
to TcheLinux
Ola Pessoal.
Resolvi o problema dos numeros "quebrados" com as seguintes linhas:

$plot->SetXTickIncrement(1.0);
$plot->SetPrecisionX(0);
$plot->SetYTickIncrement(1.0);
$plot->SetPrecisionY(0);

estranho, que a linha $plot->SetXDataLabelPos('none'); não gerou
erros, porém, eu deixando ela, ou retirando do script, o resultado eh
o mesmo. Haa, algo interessante, é que se eu usava as seguintes linhas
abaixo, continuava com os numeros "quebrados" e o fundo do gráfico
ficava cheio de pontos...

/ TESTE ESTE, DEPOIS COMENTE E
$plot->SetXTickIncrement(M_PI / 8.0);
$plot->SetYTickIncrement(0.2);
$plot->SetPrecisionX(3);
$plot->SetPrecisionY(1);

Abaixo estou colocando todo codigo do meu script que funcionou:

<?php include ("conectar.php");

$query1 = "SELECT COUNT(*) AS total FROM questionario where
tq_sexo = 'Masculino' and tq_idade = 'Nao Respondeu'";
$resultado1 = mysql_query($query1);
$row1 = mysql_fetch_assoc($resultado1);
$total1 = $row1['total'];

$query2 = "SELECT COUNT(*) AS total FROM questionario where
tq_sexo = 'Masculino' and tq_idade = 'Menos de 20 anos'";
$resultado2 = mysql_query($query2);
$row2 = mysql_fetch_assoc($resultado2);
$total2 = $row2['total'];

$query3 = "SELECT COUNT(*) AS total FROM questionario where
tq_sexo = 'Masculino' and tq_idade = 'Entre 20-30 anos'";
$resultado3 = mysql_query($query3);
$row3 = mysql_fetch_assoc($resultado3);
$total3 = $row3['total'];

$query4 = "SELECT COUNT(*) AS total FROM questionario where
tq_sexo = 'Masculino' and tq_idade = 'Entre 30-40 anos'";
$resultado4 = mysql_query($query4);
$row4 = mysql_fetch_assoc($resultado4);
$total4 = $row4['total'];

$query5 = "SELECT COUNT(*) AS total FROM questionario where
tq_sexo = 'Masculino' and tq_idade = 'Mais de 40 anos'";
$resultado5 = mysql_query($query5);
$row5 = mysql_fetch_assoc($resultado5);
$total5 = $row5['total'];


$query6 = "SELECT COUNT(*) AS total FROM questionario where
tq_sexo = 'Femenino' and tq_idade = 'Nao Respondeu'";
$resultado6 = mysql_query($query6);
$row6 = mysql_fetch_assoc($resultado6);
$total6 = $row6['total'];

$query7 = "SELECT COUNT(*) AS total FROM questionario where
tq_sexo = 'Femenino' and tq_idade = 'Menos de 20 anos'";
$resultado7 = mysql_query($query7);
$row7 = mysql_fetch_assoc($resultado7);
$total7 = $row7['total'];

$query8 = "SELECT COUNT(*) AS total FROM questionario where
tq_sexo = 'Femenino' and tq_idade = 'Entre 20-30 anos'";
$resultado8 = mysql_query($query8);
$row8 = mysql_fetch_assoc($resultado8);
$total8 = $row8['total'];

$query9 = "SELECT COUNT(*) AS total FROM questionario where
tq_sexo = 'Femenino' and tq_idade = 'Entre 30-40 anos'";
$resultado9 = mysql_query($query9);
$row9 = mysql_fetch_assoc($resultado9);
$total9 = $row9['total'];

$query10 = "SELECT COUNT(*) AS total FROM questionario where
tq_sexo = 'Femenino' and tq_idade = 'Mais de 40 anos'";
$resultado10 = mysql_query($query10);
$row10 = mysql_fetch_assoc($resultado10);
$total10 = $row10['total'];

include ('C:\xampp\phplot\phplot.php');//mude de acrodo com a sua
situação
#incluindo a classe. verifique se diretorio e versao sao iguais,
altere se precisar

#Instancia o objeto e setando o tamanho do grafico na tela
$plot = new PHPlot(800,600);
#Tipo de borda, consulte a documentacao
$plot->SetImageBorderType('plain');
#Tipo de grafico, nesse caso barras, existem diversos(pizza…)
$plot->SetPlotType('bars');
#Titulo do Gráfico
$plot->SetTitle("Idade e Sexo dos Entrevistados\n\r");
#Tipo de dados, nesse caso texto que esta no array
$plot->SetDataType('text-data');
#Setando os valores com os dados do array
$plot->SetDataValues($data);
#Legenda, nesse caso serao tres pq o array possui 3 valores que serao
apresentados
$plot->SetLegend(array('Nao Respondeu', 'Menos de 20 anos', 'Entre
20-30 anos', 'Entre 30-40 anos', 'Mais de 40 anos'));
#Utilizados p/ marcar labels, necessario mas nao se aplica neste ex.
(manual) :
//$plot->SetXTickLabelPos('none');
//$plot->SetXTickPos('none');

/*
$plot->SetXTickIncrement(M_PI / 8.0);
$plot->SetYTickIncrement(0.2);
$plot->SetPrecisionX(3);
$plot->SetPrecisionY(1);
*/

$plot->SetXTickIncrement(1.0);
$plot->SetPrecisionX(0);
$plot->SetYTickIncrement(1.0);
$plot->SetPrecisionY(0);

#Matriz utilizada para gerar os graficos
$data = array(
array('Masculino', $total1, $total2, $total3, $total4, $total5),
array('Femenino', $total6, $total7, $total8, $total9, $total10)
);
$plot->SetDataValues($data);
#Gera o grafico na tela
$plot->DrawGraph();
?>



On 17 jun, 09:29, Rudinei Dias <rudinei.d...@gmail.com> wrote:
> 2009/6/16 Jeronimo Zucco <jczu...@gmail.com>:

Rudinei Dias

unread,
Jun 18, 2009, 10:33:17 AM6/18/09
to Tche...@googlegroups.com
A única coisa que consigo pensar sem ter em mãos o código fonte é que
você não está usando uma versão atualizada do phplot. Baixe a versão
mais atual do site, foi a que montei o exemplo.
Rudinei Dias


2009/6/17 renator <renato....@gmail.com>:
--
-------------------------------------------------------------
Rudinei Dias

renator

unread,
Jun 19, 2009, 5:22:57 AM6/19/09
to TcheLinux
Pode ser Rudinei....Não sei dizer qual a versão do phplot que usei,
mas assim que descobir, eu aviso, só para título de curiosidade....

vlw

Renato

On 18 jun, 11:33, Rudinei Dias <rudinei.d...@gmail.com> wrote:
> A única coisa que consigo pensar sem ter em mãos o código fonte é que
> você não está usando uma versão atualizada do phplot. Baixe a versão
> mais atual do site, foi a que montei o exemplo.
> Rudinei Dias
>
> 2009/6/17 renator <renato.rudni...@gmail.com>:

Lenyson Rodrigo Franca Soares

unread,
May 7, 2020, 6:00:06 PM5/7/20
to Tchelinux
eu fiz assim:
round($custoSemSolar,0)
$data[] = array(round('$meuvalorl',0)); onde:

$meuvalor -> é o valor decimal.
0 -> é o numero de casas que quero depois da ( , );
Reply all
Reply to author
Forward
0 new messages