jFreeChart com gráficos em GIF?

3 respostas
L

Meu firewall bloqueia arquivos com extensão PNG e os gráficos gerados no jFreeChart em formato JPEG não ficam bom.

É possível gerar gráficos em GIF no jFreeChart?

:?: :?: :?: :?: :?:

3 Respostas

qmx

cara, muda o firewall. Estamos em 2009! png é muito melhor :wink:

R

amigão estou precisando gerar gráficos em meu aplicativo…

será que poderia me passar um exemplo que você tem do jFreeChart?

não consegui achar nenhum fonte deles…

L
rafaels:
amigão estou precisando gerar gráficos em meu aplicativo...

será que poderia me passar um exemplo que você tem do jFreeChart?

não consegui achar nenhum fonte deles...

Tá na mão. Segue abaixo o código e a forma da chamada.

Chamada:
graphicWorkDay.createGraphic(response.getOutputStream());
Código:
import java.awt.Color;
import java.awt.Font;
import java.io.OutputStream;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.DatasetRenderingOrder;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.DefaultCategoryDataset;

public class GraphicWorkDay {

  private DefaultCategoryDataset bars = null;
  private String desBar1;
  private String desBar2;

  private void createDataset() {

    try {
      bars = new DefaultCategoryDataset();

      desBar1  = "Barra 1";
      desBar2  = "Barra 2";
      
      bars.addValue(5000,  desBar1, "Jan-2009");
      bars.addValue(7000,  desBar2, "Jan-2009");
          
      bars.addValue(10000, desBar1, "Fev-2009");
      bars.addValue(12000, desBar2, "Fev-2009");
          
      bars.addValue(9000,  desBar1, "Mar-2009");
      bars.addValue(8000,  desBar2, "Mar-2009");
          
      bars.addValue(12000, desBar1, "Abr-2009");
      bars.addValue(7000,  desBar2, "Abr-2009");
          
      bars.addValue(7000,  desBar1, "Mai-2009");
      bars.addValue(12000, desBar2, "Mai-2009");
          
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    
  }

  public void createGraphic(OutputStream os) {
    this.createDataset();
    
    /**
     * Inicia o gráfico
     **/
     
    JFreeChart chart = ChartFactory.createBarChart3D("Título", 
                                                     "Rodapé",     
                                                     "Título Barra",     
                                                     this.getBars(), 
                                                     PlotOrientation.VERTICAL, 
                                                     true, 
                                                     false, 
                                                     false);
      chart.setBackgroundPaint(Color.white);
      chart.addSubtitle( new TextTitle( "Subtítulo", new Font( null, Font.PLAIN, 14 ) ) );  
      
    /**
     * Invoca o objeto com propriedades de plotagem do gráfico
     */
    CategoryPlot categoryplot = chart.getCategoryPlot();
      // Define a cor do fundo gráfico    
      categoryplot.setBackgroundPaint(new Color(215, 235, 255));
      // Define a posição da legenda do eixo "X"
      categoryplot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
      // Define a visibilidade das linhas de Grid
      categoryplot.setRangeGridlinesVisible(true);

    /**
     *  Invoca objeto de plotagem do gráfico que: 
     *  Controla as informações e posicionamento do eixo "X"
     */
    CategoryAxis categoryaxis = categoryplot.getDomainAxis();
      // Define a orientação e o ângulo de impressão dos labels do eixo
      categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    /**
     *  Invoca objeto de plotagem do gráfico que:
     *  Controla a renderizaçao dos itens do gráfico.
     *  No caso "Bars"
     */
    CategoryItemRenderer categoryitemrenderer = categoryplot.getRenderer();
      // Define a cor do primeiro item "0". A alteraçao reflete na legenda
      categoryitemrenderer.setSeriesPaint(0, Color.cyan); //
      // Define a cor do segundo item "1". A alteraçao reflete na legenda
      categoryitemrenderer.setSeriesPaint(1, new Color(13, 255, 13));

    /**
     *  Invoca objeto do controle de renderização que:
     *  Controla o efeito 3D das bars
     */
    BarRenderer3D br = (BarRenderer3D) categoryitemrenderer;
      // "0" define a barra completa, com os todos os lados do polígono
      br.setItemMargin(0);

    // Defina a posição das linhas no gráfico em relação as barras
    categoryplot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);

    try {
       ChartUtilities.writeChartAsPNG(os, chart, 740, 270);
    } 
    catch (java.io.IOException exc) {
      System.err.println("Error creating image!");
    }

  }

  public DefaultCategoryDataset getBars() {
    return bars;
  }

  public void setBars(DefaultCategoryDataset newBars) {
    bars = newBars;
  }

}
Criado 30 de janeiro de 2009
Ultima resposta 30 de jan. de 2009
Respostas 3
Participantes 3