Graficos em java

8 respostas
D

Olá pessoal!

gostaria, por gentilieza, que alguem me indicasse uma classe do java que trata de graficos (de linhas ou de barras).

flows

8 Respostas

bland

Graphics? Graphics2D?

danieldestro

Use a API JFreeChart.

cassio

Procure por JFreeChart

andredeividi

Cara qual tipo de grafico vc vai usar?

gannt, bar, pizza?

eu uso o Gannt com JfreeChart

abraço

Eduardo_Bregaida

Diagomes:
Olá pessoal!

gostaria, por gentilieza, que alguem me indicasse uma classe do java que trata de graficos (de linhas ou de barras).

flows

JFreeChart
http://www.jfree.org/jfreechart/

andredeividi

Barras

pega esse exemplo
usando o JfreeChart

package demo;

import java.awt.*;
import java.text.NumberFormat;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.annotations.CategoryTextAnnotation;
import org.jfree.chart.axis.CategoryAnchor;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.*;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.*;

public class BarChart3DDemo4 extends ApplicationFrame
{
    static class CustomBarRenderer3D extends BarRenderer3D
    {

        public Paint getItemPaint(int i, int j)
        {
            CategoryDataset categorydataset = getPlot().getDataset();
            double d = categorydataset.getValue(i, j).doubleValue();
            if(d &gt= 0.69999999999999996D)
            {
                return Color.green;
            } else
            {
                return Color.red;
            }
        }

        public CustomBarRenderer3D()
        {
        }
    }


    public BarChart3DDemo4(String s)
    {
        super(s);
        CategoryDataset categorydataset = createDataset();
        JFreeChart jfreechart = createChart(categorydataset);
        ChartPanel chartpanel = new ChartPanel(jfreechart);
        chartpanel.setPreferredSize(new Dimension(500, 270));
        setContentPane(chartpanel);
    }

    private static CategoryDataset createDataset()
    {
        DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
        defaultcategorydataset.addValue(0.77000000000000002D, "Series 1", "Robert");
        defaultcategorydataset.addValue(0.93000000000000005D, "Series 1", "Mary");
        defaultcategorydataset.addValue(0.58999999999999997D, "Series 1", "John");
        defaultcategorydataset.addValue(0.75D, "Series 1", "Ellen");
        defaultcategorydataset.addValue(0.63D, "Series 1", "Jack");
        defaultcategorydataset.addValue(0.94999999999999996D, "Series 1", "David");
        defaultcategorydataset.addValue(0.70999999999999996D, "Series 1", "Mark");
        defaultcategorydataset.addValue(0.65000000000000002D, "Series 1", "Andy");
        return defaultcategorydataset;
    }

    private static JFreeChart createChart(CategoryDataset categorydataset)
    {
        JFreeChart jfreechart = ChartFactory.createBarChart3D("Student Grades", "Students", "Grade", categorydataset, PlotOrientation.VERTICAL, false, true, false);
        CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
        CustomBarRenderer3D custombarrenderer3d = new CustomBarRenderer3D();
        categoryplot.setRenderer(custombarrenderer3d);
        ValueMarker valuemarker = new ValueMarker(0.69999999999999996D, new Color(200, 200, 255), new BasicStroke(1.0F), new Color(200, 200, 255), new BasicStroke(1.0F), 1.0F);
        categoryplot.addRangeMarker(valuemarker, Layer.BACKGROUND);
        custombarrenderer3d.setItemLabelsVisible(true);
        custombarrenderer3d.setMaximumBarWidth(0.050000000000000003D);
        CategoryTextAnnotation categorytextannotation = new CategoryTextAnnotation("Minimum grade to pass", "Robert", 0.70999999999999996D);
        categorytextannotation.setCategoryAnchor(CategoryAnchor.START);
        categorytextannotation.setFont(new Font("SansSerif", 0, 12));
        categorytextannotation.setTextAnchor(TextAnchor.BOTTOM_LEFT);
        categoryplot.addAnnotation(categorytextannotation);
        NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
        numberaxis.setNumberFormatOverride(NumberFormat.getPercentInstance());
        return jfreechart;
    }

    public static JPanel createDemoPanel()
    {
        JFreeChart jfreechart = createChart(createDataset());
        return new ChartPanel(jfreechart);
    }

    public static void main(String args[])
    {
        BarChart3DDemo4 barchart3ddemo4 = new BarChart3DDemo4("3D Bar Chart Demo 4");
        barchart3ddemo4.pack();
        RefineryUtilities.centerFrameOnScreen(barchart3ddemo4);
        barchart3ddemo4.setVisible(true);
    }
}
D

ae pessoal!

obrigado pela força.

flows

danieldestro

O pessoal aqui parece gostar de fazer volume e aumentar o número de mensagens próprias. Foram 4 mensagens a mais dizendo a mesma coisa.

Criado 19 de dezembro de 2006
Ultima resposta 20 de dez. de 2006
Respostas 8
Participantes 6