Jump to content

PHPLOT


security
 Share

Recommended Posts

Bom pessoal...

eu estou com um problemazinho ao gerar graficos com o PHPlot.

eu criei o grafico (e está a funcionar direitinho) contudo queria definir a escala como sendo de 5 em 5, porque a escala vai em espaços de 0.7 mas nao consegui descobrir ate agora.

alguem me sabe explicar como faço?????

"Innovation distinguishes between a leader and a follower." Steve jobs.

Link to comment
Share on other sites

Este é  codigo que tenho para o 1º gráfico:

<?php 
include '../phplot2/phplot.php';
//perguntas boleanas (Sim/Não)
#Matriz utilizada para gerar os graficos
$data = array(	array('Pg.1', $p1_0, $p1_1), array('Pg.3', $p3_0, $p3_1), array('Pg.4', $p4_0, $p4_1));
//$data1 = array());

#Instancia o objeto e setando o tamanho do grafico na tela
$plot = new PHPlot(600,300);
#Tipo de borda, consulte a documentacao
$plot->SetImageBorderType('plain');
#Tipo de grafico, nesse caso barras, existem diversos(pizza…)
$plot->SetPlotType('bars');
#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);
#Titulo do grafico
$plot->SetTitle(utf8_decode('Resultado do inquérito aos professores - Respostas Sim/Não'));

#Legenda, nesse caso serao tres pq o array possui 3 valores que serao apresentados
$plot->SetLegend(array(utf8_decode('Sim'),utf8_decode('Não')));
#Utilizados p/ marcar labels, necessario mas nao se aplica neste ex. (manual) :
$plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');
#Gera o grafico na tela
$plot->DrawGraph();
?>

para efectuar o segundo grafico é só copiar o código e definir um nome diferente para o array (como tenho em baixo

$data1 = array(array('Pg.1', $p1_0, $p1_1), array('Pg.3', $p3_0, $p3_1), array('Pg.4', $p4_0, $p4_1));

e alterar tambem o nome do objecto, como tenho abaixo:

#Instancia o objeto e setando o tamanho do grafico na tela
$plot1 = new PHPlot(600,300);
#Tipo de borda, consulte a documentacao
$plot1->SetImageBorderType('plain');
#Tipo de grafico, nesse caso barras, existem diversos(pizza…)
$plot1->SetPlotType('bars');
#Tipo de dados, nesse caso texto que esta no array
$plot1->SetDataType('text-data');
#Setando os valores com os dados do array
$plot1->SetDataValues($data1);
#Titulo do grafico
$plot1->SetTitle(utf8_decode('Resultado do inquérito aos professores - Respostas Sim/Não'));

#Legenda, nesse caso serao tres pq o array possui 3 valores que serao apresentados
$plot1->SetLegend(array(utf8_decode('Sim'),utf8_decode('Não')));
#Utilizados p/ marcar labels, necessario mas nao se aplica neste ex. (manual) :
$plot1->SetXTickLabelPos('none');
$plot1->SetXTickPos('none');
#Gera o grafico na tela
$plot1->DrawGraph();

podem confirmar pf???

"Innovation distinguishes between a leader and a follower." Steve jobs.

Link to comment
Share on other sites

Tenta isto:

4.6.1. Overview of Multiple Plots

When producing multiple plots on an image, a single PHPlot object is used. The overall steps to be followed are:

1. Create a PHPlot or PHPlot_truecolor object (referred to here as $plot).

2. Use $plot->SetPrintImage(False) to disable automatic output of the image after a plot is created.

3. Prepare the first plot, including setting the data array, plot type, and any other applicable settings.PHPlot Advanced Topics

60

4. Use $plot->DrawGraph() when complete. This creates the plot, but does not produce any output.

5. Repeat the previous two steps to prepare each additional plot, completing it with $plot->DrawGraph().

6. When all the plots are complete, use $plot->PrintImage() to output the completed image.

The sections which follow contain additional information you will need to produce multiple plots on a single image

Link to comment
Share on other sites

ja está resolvido e melhor do que eu tinha...  😁

em vez de ter 3 gráficos implementei os 3 gráficos numa só imagem...

Abaixo deixo o código da página para se alguém precisar.

<?php require 'pesquisas_sql.php';
include 'phplot/phplot.php';
//Perguntas de escolha multipla
#Matriz utilizada para gerar os graficos
$data = array(array(utf8_decode("1. Usa o computador\npara leccionar as aulas?"),$p1_0, $p1_1), array(utf8_decode("3. Quando utiliza o computador tem necessidade\nde procurar colunas de som para fazer as apresentações?"), $p3_0, $p3_1), array('4. Utiliza o computador para navegar na internet?', $p4_0, $p4_1));//respostas sim/nao
$data1 = array(array('2. Se indicou sim na questão anterior, diga por favor, utiliza o computador para projectar (através de dispositivo USB ou CD/DVD): *',$p2_0, $p2_1, $p2_2));//respostas pergunta 2
$data2 = array(array('5. Se respondeu sim, assinale:*', $p5_0, $p5_1, $p5_2));//respostas pergunta 5

//----- grafico 1
$plot = new PHPlot(1024,900);
$plot->SetImageBorderType('plain');

# Disable auto-output:
$plot->SetPrintImage(0);

# There is only one title: it is outside both plot areas.
$plot->SetTitle(utf8_decode('Inquérito aos docentes'));

$plot->SetPlotAreaPixels(80, 35, 1000, 260);

# Do the first plot:
$plot->SetDataType('text-data');
$plot->SetDataValues($data);
$plot->SetPlotAreaWorld(0, 0, NULL, 150);
$plot->SetDataColors(array('green','yellow'));
$plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');
$plot->SetYTickIncrement(10);
$plot->SetYTitle("Perguntas 1, 3 e 4");
$plot->SetLegend(array(utf8_decode('Sim'),utf8_decode('Não')));
$plot->SetPlotType('bars');
$plot->DrawGraph();

//---------------grafico 2
# Set up area for first plot:
$plot->SetPlotAreaPixels(80, 300, 1000, 550);# Do the first plot:
$plot->SetDataType('text-data');
$plot->SetDataValues($data1);
$plot->SetPlotAreaWorld(0, 0, NULL, 150);
$plot->SetDataColors(array('green','yellow','red'));
$plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');
$plot->SetYTickIncrement(10);
$plot->SetYTitle("Pergunta 2");
$plot->SetLegend(array(utf8_decode('Pesquisas na Internet '),utf8_decode('Acesso ao correio electrónico '),utf8_decode('Visualização de documentários/videos online')));
$plot->SetPlotType('bars');
$plot->DrawGraph();

//--------------------grafico 3
# Set up area for second plot:
$plot->SetPlotAreaPixels(80, 590, 1000, 850);

# Do the second plot:
$plot->SetDataType('text-data');
$plot->SetDataValues($data2);
$plot->SetPlotAreaWorld(0, 0, NULL, 150);
$plot->SetDataColors(array('green','yellow','red'));
$plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');
$plot->SetYTickIncrement(10);
$plot->SetYTitle("Pergunta 3");
$plot->SetLegend(array(utf8_decode('Pesquisas na Internet '),utf8_decode('Acesso ao correio electrónico '),utf8_decode('Visualização de documentários/videos online')));
$plot->SetPlotType('bars');
$plot->DrawGraph();

# Output the image now:
$plot->PrintImage();
?>

Obrigado a todos que me deram as suas dicas...  😁

"Innovation distinguishes between a leader and a follower." Steve jobs.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.