security Posted February 23, 2012 at 10:32 AM Report Share #440809 Posted February 23, 2012 at 10:32 AM 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 More sharing options...
HappyHippyHippo Posted February 23, 2012 at 10:50 AM Report Share #440812 Posted February 23, 2012 at 10:50 AM parece ser isto : http://phplot.sourceforge.net/phplotdocs/SetXTickIncrement.html IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
security Posted February 23, 2012 at 11:36 AM Author Report Share #440819 Posted February 23, 2012 at 11:36 AM mas como é que digo que quero a escala do grafico de 2 em 2??? nao consegui perceber... ? 😕 "Innovation distinguishes between a leader and a follower." Steve jobs. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted February 23, 2012 at 11:41 AM Report Share #440820 Posted February 23, 2012 at 11:41 AM max_size = max_value x = 5 ... regra de 3 simples ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
security Posted February 23, 2012 at 12:32 PM Author Report Share #440824 Posted February 23, 2012 at 12:32 PM ja agora... porque nao consigo colocar 2 graficos na mesma pagina??? é por burrice minha ou porque nao da mesmo???? "Innovation distinguishes between a leader and a follower." Steve jobs. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted February 23, 2012 at 12:53 PM Report Share #440827 Posted February 23, 2012 at 12:53 PM estás a fazer diferentes chamadas ao new PHPlot(); para cada gráfico ??? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
security Posted February 23, 2012 at 01:46 PM Author Report Share #440833 Posted February 23, 2012 at 01:46 PM 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 More sharing options...
security Posted February 28, 2012 at 10:16 AM Author Report Share #441435 Posted February 28, 2012 at 10:16 AM eu invoco o new PHPlot(); mas nao funciona... continua só a aparecer o objecto que está em 1º lugar! "Innovation distinguishes between a leader and a follower." Steve jobs. Link to comment Share on other sites More sharing options...
dekked Posted February 28, 2012 at 01:17 PM Report Share #441455 Posted February 28, 2012 at 01:17 PM 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 More sharing options...
security Posted February 28, 2012 at 04:36 PM Author Report Share #441479 Posted February 28, 2012 at 04:36 PM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now