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?
:?: :?: :?: :?: :?:
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?
:?: :?: :?: :?: :?:
cara, muda o firewall. Estamos em 2009! png é muito melhor
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…
[quote=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…[/quote]
Tá na mão. Segue abaixo o código e a forma da chamada.
Chamada:
graphicWorkDay.createGraphic(response.getOutputStream());
Código:
[code]
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;
}
}[/code]