Example usage for org.jfree.chart ChartFactory createBarChart3D

List of usage examples for org.jfree.chart ChartFactory createBarChart3D

Introduction

In this page you can find the example usage for org.jfree.chart ChartFactory createBarChart3D.

Prototype

public static JFreeChart createBarChart3D(String title, String categoryAxisLabel, String valueAxisLabel,
        CategoryDataset dataset, PlotOrientation orientation, boolean legend, boolean tooltips, boolean urls) 

Source Link

Document

Creates a bar chart with a 3D effect.

Usage

From source file:stockit.Manager.java

private void displayBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_displayBtnActionPerformed
    // TODO add your handling code here:
    //panel.removeAll();

    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    int row = table.getSelectedRow();
    if (row != -1) {
        //dataset.setValue(, "", table.getValueAt(0,1).toString());
        String selectedStock = table.getValueAt(row, 0).toString();
        try {/*from   ww  w.ja  v  a2s  . c  o  m*/
            DBConnection dbcon = new DBConnection();
            dbcon.establishConnection();
            Statement stmt = dbcon.con.createStatement();
            ResultSet rs = stmt
                    .executeQuery("Select stock_daily_performance.Closing_Price, stock_daily_performance.Date\n"
                            + "FROM stock_daily_performance, stock\n"
                            + "WHERE stock_daily_performance.StockID = stock.StockID AND stock.StockID = '"
                            + selectedStock + "'" + "AND Date IN\n" + "( Select * from\n" + "(\n"
                            + "SELECT Date \n" + "FROM stock_daily_performance \n"
                            + "WHERE StockID = stockID \n" + "ORDER BY Date ASC\n" + ") temp_table)\n"
                            + "            ");

            while (rs.next()) {

                String formattedDate = rs.getString("Date");
                int closing_price = rs.getInt("Closing_Price");
                System.out.println("Closing Price: " + closing_price);
                System.out.println("Date: " + formattedDate);
                dataset.setValue(closing_price, "value", formattedDate);

            }
            dbcon.con.close();
        } catch (Exception ex) {
            Logger.getLogger(clientLogin.class.getName()).log(Level.SEVERE, null, ex);
        }
        String stockName = table.getValueAt(row, 1).toString();
        JFreeChart chart = ChartFactory.createBarChart3D(stockName + " Stock Performance", "Date", "Value",
                dataset, PlotOrientation.VERTICAL, false, false, false);
        Color c = new Color(240, 240, 240, 0);
        chart.setBackgroundPaint(c);
        CategoryPlot catPlot = chart.getCategoryPlot();
        catPlot.setRangeGridlinePaint(Color.BLACK);
        //set interval of Y-axis ticks (tick every 5 units)
        NumberAxis yAxis = (NumberAxis) catPlot.getRangeAxis();
        yAxis.setTickUnit(new NumberTickUnit(5));

        //set y-axis labels as currency types ($)
        NumberFormat currency = NumberFormat.getCurrencyInstance();
        yAxis.setNumberFormatOverride(currency);

        //setting number of lines an x-axis label is displayed on
        CategoryAxis categoryAxis = catPlot.getDomainAxis();
        categoryAxis.setMaximumCategoryLabelLines(4);
        panel.setLayout(new java.awt.BorderLayout());
        ChartPanel chartPanel = new ChartPanel(chart);
        panel.removeAll();
        panel.add(chartPanel, BorderLayout.CENTER);
        panel.validate();
        panel.repaint();
    }
}

From source file:GroupProject.OriginalChartUI.java

/**
 * The method to draw bar chart//  www. j  a va  2s  . c o  m
 * @param barChartData the data used in the bar chart
 * @param XTitle the measurement of X axis
 * @param YTitle the measurement of Y axis
 */
public void draw3DBarChart(Map<String, Float> barChartData, String XTitle, String YTitle) {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    String title = XTitle + " VS " + YTitle;
    ArrayList<String> keyArrayList = new ArrayList<>();
    ArrayList<Float> valueArrayList = new ArrayList<>();
    Set set = barChartData.keySet();
    int i = 1;
    for (Map.Entry<String, Float> data : barChartData.entrySet()) {
        String key = data.getKey();
        Float value = data.getValue();
        keyArrayList.add(key);
        valueArrayList.add(value);
        dataset.setValue(value, "1", key);
    }
    JFreeChart chart = ChartFactory.createBarChart3D(title, "", "", dataset, PlotOrientation.VERTICAL, false,
            false, false);

    CategoryPlot plot = chart.getCategoryPlot();
    plot.setBackgroundPaint(new java.awt.Color(255, 255, 255));
    plot.setRangeGridlinePaint(Color.GRAY);

    BarRenderer3D barRender = (BarRenderer3D) plot.getRenderer();
    barRender.setSeriesPaint(0, Color.decode("#9DC3E6"));
    ChartPanel chartPanel = new ChartPanel(chart);
    chartDisplayPanel.removeAll();
    chartDisplayPanel.add(chartPanel, BorderLayout.CENTER);
    chartDisplayPanel.validate();
}

From source file:NewGUI.Statistics.java

public void setChart(Boolean isChartBar) {

    SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd");
    String sql = "";
    String title1 = "", title2 = "", title3 = "";
    String s1, s2, s3, s4;/*from   ww  w . j  a v  a 2 s.  c om*/
    if (cboxType.getSelectedIndex() == 0) {
        s1 = "importing";
        s2 = "import_type_id";
        s3 = "thu nhp";
        s4 = "import_type";

    } else {
        s1 = "exporting";
        s2 = "export_type_id";
        s3 = "chi tiu";
        s4 = "export_type";
    }
    int caseSQL = 4 * (checkBoxCategory.isSelected() ? 1 : 0) + 2 * (checkBoxMonth.isSelected() ? 1 : 0)
            + (checkBoxYear.isSelected() ? 1 : 0);

    int year = jycFrom.getValue();
    int month = cboxMonth.getSelectedIndex();
    DefaultCategoryDataset categoryDataset = new DefaultCategoryDataset();
    DefaultPieDataset pieDataset = new DefaultPieDataset();
    ArrayList<Integer> listAccount = filter.getListAcount();

    for (int i = 0; i < listAccount.size(); i++) {
        String sql1 = "select x.user_id,user.userName,y.name,x.value,x.date from "
                + "(select a.id,a.user_id,a.value,a.date,a.category_id from " + "(select * from "
                + (cboxType.getSelectedIndex() == 0 ? "importing" : "exporting") + " where date between '"
                + df.format(jdcFrom.getDate()).toString() + "' and '" + df.format(jdcTo.getDate()).toString()
                + "' and user_id in(" + getAccountList() + ") " + getStringAmount() + " " + getStringText()
                + " " + getStringCategory() + ") as a," + "(select * from share where user_id = 1 and type_id="
                + (cboxType.getSelectedIndex() == 0 ? 1 : 2) + ")as b where b.transaction_id=a.id)as x,"
                + "user,import_type as y where x.user_id = user.id and x.category_id=y.id";

        sql1 = "(" + sql1 + ")as x";

        switch (caseSQL) {
        case 0:
            sql = "select sum(value),year(date),userName from " + sql1 + " where user_id=" + listAccount.get(i)
                    + " group by(year(date))";
            title1 = "";
            title2 = "Bng thng k " + s3 + " cc nm";
            title3 = "";
            break;
        case 1:
            sql = "select sum(value),month(date),userName from " + sql1 + " where user_id=" + listAccount.get(i)
                    + " and year(date)=" + year + " group by (month(date))";
            title1 = "T.";
            title2 = "Bng thng k " + s3 + " trong nm " + year;
            title3 = "";
            break;
        case 2:
            sql = "select sum(value),year(date),userName from " + sql1 + " where user_id=" + listAccount.get(i)
                    + " and month(date)=" + month + " group by (year(date))";
            title1 = "";
            title2 = "Bng thng k " + s3 + " thng " + month + " trong cc nm";
            title3 = "";
            break;
        case 3:
            sql = "select sum(value),name,userName from " + sql1 + " where user_id=" + listAccount.get(i)
                    + " and month(date)=" + month + " and year(date)=" + year + " group by name";
            title1 = "";
            title2 = "Bng thng k " + s3 + " thng " + month + " trong nm " + year;
            title3 = "";
            break;
        case 4:
            sql = "select sum(value),year(date),userName from " + sql1 + " where user_id=" + listAccount.get(i)
                    + " group by (year(date))";
            title1 = "";
            title2 = "Bng thng k " + s3 + " '" + "' trong cc nm";
            title3 = "";
            break;
        case 5:
            sql = "select sum(value),month(date),userName from " + sql1 + "where user_id=" + listAccount.get(i)
                    + " and year(date)=" + year + " group by (month(date))";
            title1 = "T.";
            title2 = "Bng thng k " + s3 + " '" + "' trong nm " + year;
            title3 = "";
            break;
        case 6:
            sql = "select sum(value),year(date),userName from " + sql1 + " where user_id=" + listAccount.get(i)
                    + " and month(date)=" + month + " group by (year(date))";
            title1 = "";
            title2 = "Bng thng k " + s3 + " '" + "' thng " + month + " trong cc nm";
            title3 = "";
            break;
        case 7:
            sql = "select sum(value),year(date),userName from " + sql1 + " where user_id=" + listAccount.get(i)
                    + " and month(date)=" + month + " and year(date)=" + year;
            title1 = "";
            title2 = "Bng thng k " + s3 + " '" + "' thng " + month + " trong nm " + year;
            title3 = "";
            break;
        }
        System.out.println(sql);
        try {
            ResultSet rs = Database.stm.executeQuery(sql);

            while (rs.next()) {
                categoryDataset.setValue(rs.getInt(1), rs.getString(3), title1 + rs.getString(2));
            }

        } catch (Exception ex) {
            System.out.println("Loi...");
        }

    }

    if (isChartBar) {
        chart = ChartFactory.createBarChart3D("", title2, title3, categoryDataset, PlotOrientation.VERTICAL,
                true, true, false);
    } else {
        chart = ChartFactory.createMultiplePieChart3D(title2, categoryDataset, TableOrder.BY_COLUMN, true, true,
                true);
    }
    chartPanel.setChart(chart);
    jtabpanelView.setSelectedIndex(1);
}

From source file:userInterface.HospitalAdminRole.ManagePatientsJPanel.java

private void createChart() {
    DefaultCategoryDataset vitalSignDataset = new DefaultCategoryDataset();
    int selectedRow = vitalSignjTable.getSelectedRow();
    Member member = (Member) vitalSignjTable.getValueAt(selectedRow, 0);
    ArrayList<VitalSign> vitalSignList = member.getVitalSignList().getVitalSignList();
    /*At least 2 vital sign records needed to show chart */
    if (vitalSignList.isEmpty() || vitalSignList.size() == 1) {
        JOptionPane.showMessageDialog(this,
                "No vital signs or only one vital sign found. At least 2 vital sign records needed to show chart!",
                "Warning", JOptionPane.INFORMATION_MESSAGE);
        return;/*w w  w.j  a va 2s . c  o m*/
    }
    for (VitalSign vitalSign : vitalSignList) {
        vitalSignDataset.addValue(vitalSign.getRespiratoryRate(), "RR", vitalSign.getTimestamp());
        vitalSignDataset.addValue(vitalSign.getHeartRate(), "HR", vitalSign.getTimestamp());
        vitalSignDataset.addValue(vitalSign.getBloodPressure(), "BP", vitalSign.getTimestamp());
        vitalSignDataset.addValue(vitalSign.getTemperature(), "Temp", vitalSign.getTimestamp());
    }

    JFreeChart vitalSignChart = ChartFactory.createBarChart3D("Vital Sign Chart", "Time Stamp", "Rate",
            vitalSignDataset, PlotOrientation.VERTICAL, true, false, false);
    vitalSignChart.setBackgroundPaint(Color.white);
    CategoryPlot vitalSignChartPlot = vitalSignChart.getCategoryPlot();
    vitalSignChartPlot.setBackgroundPaint(Color.lightGray);

    CategoryAxis vitalSignDomainAxis = vitalSignChartPlot.getDomainAxis();
    vitalSignDomainAxis
            .setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));

    NumberAxis vitalSignRangeAxis = (NumberAxis) vitalSignChartPlot.getRangeAxis();
    vitalSignRangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

    ChartFrame chartFrame = new ChartFrame("Chart", vitalSignChart);
    chartFrame.setVisible(true);
    chartFrame.setSize(500, 500);

}

From source file:gskproject.Analyze.java

private void btnDAGraphActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDAGraphActionPerformed
    if (tableDepartmentAccident != null) {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        JFreeChart chart = null;/*ww w  . j a va2 s.  c o  m*/
        if (ddDDepartment.getSelectedIndex() == 0 && ddDAccidentType.getSelectedIndex() == 0) {
            for (int i = 0; i < tableDepartmentAccident.size() - 1; i++) {
                Vector<Object> row = tableDepartmentAccident.get(i);
                dataset.addValue(Double.parseDouble(row.get(1).toString()), "First Aid", row.get(0).toString());
                dataset.addValue(Double.parseDouble(row.get(2).toString()), "LTI", row.get(0).toString());
                dataset.addValue(Double.parseDouble(row.get(3).toString()), "Near Miss", row.get(0).toString());
            }
            chart = ChartFactory.createBarChart3D("All Departments VS All Accident Types", "Departments",
                    "Accident Types", dataset, PlotOrientation.VERTICAL, false, true, false);
        } else {
            String dep = ddDDepartment.getSelectedItem().toString();
            String acc = ddDAccidentType.getSelectedItem().toString();
            if (ddDDepartment.getSelectedIndex() == 0) {
                for (int i = 0; i < tableDepartmentAccident.size() - 1; i++) {
                    Vector<Object> row = tableDepartmentAccident.get(i);
                    dataset.addValue(Double.parseDouble(row.get(ddDAccidentType.getSelectedIndex()).toString()),
                            acc, row.get(0).toString());
                }
                chart = ChartFactory.createBarChart3D("All Departments VS " + acc, "Departments", acc, dataset,
                        PlotOrientation.VERTICAL, false, true, false);
            } else if (ddDAccidentType.getSelectedIndex() == 0) {
                Vector row = tableDepartmentAccident.get(ddDDepartment.getSelectedIndex() - 1);
                dataset.addValue(Double.parseDouble(row.get(1).toString()), dep, "First Aid");
                dataset.addValue(Double.parseDouble(row.get(2).toString()), dep, "LTI");
                dataset.addValue(Double.parseDouble(row.get(3).toString()), dep, "Near Miss");
                chart = ChartFactory.createBarChart3D(dep + " Department VS All Accident Types",
                        "Accident Types", dep, dataset, PlotOrientation.VERTICAL, false, true, false);
            }
        }

        CategoryPlot p = chart.getCategoryPlot();
        p.setRangeGridlinePaint(Color.BLACK);
        ChartFrame frame = new ChartFrame("Dual Axis Chart", chart);
        frame.setSize(700, 500);
        frame.setVisible(true);

    } else {
        JOptionPane.showMessageDialog(this, "Please Filter Data!");
    }
}

From source file:edu.ucla.stat.SOCR.chart.ChartGenerator_JTable.java

private JFreeChart createCategoryBarChart(String title, String xLabel, String yLabel, CategoryDataset dataset) {

    //  System.out.println("layout = "+layout);
    JFreeChart chart;// w w  w.  j a va2s  .  c o m
    if (dimension.equalsIgnoreCase("3d")) {

        chart = ChartFactory.createBarChart3D(title, // chart title
                xLabel, // domain axis label
                yLabel, // range axis label
                dataset, // data
                orientation, // orientation
                true, // include legend
                true, // tooltips
                false // urls
        );
        CategoryPlot plot = chart.getCategoryPlot();
        plot.setDomainGridlinesVisible(true);
        CategoryAxis axis = plot.getDomainAxis();
        axis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 8.0));
        BarRenderer3D renderer = (BarRenderer3D) plot.getRenderer();
        //renderer.setLegendItemLabelGenerator(new SOCRCategorySeriesLabelGenerator());
        renderer.setDrawBarOutline(false);
        return chart;
    }
    if (layout.equalsIgnoreCase("stacked")) {
        chart = ChartFactory.createStackedBarChart(title, // chart title
                xLabel, // domain axis label
                yLabel, // range axis label
                dataset, // data
                orientation, // the plot orientation
                true, // legend
                true, // tooltips
                false // urls
        );
    } else if (layout.equalsIgnoreCase("waterfall")) {
        chart = ChartFactory.createWaterfallChart(title, xLabel, yLabel, dataset, orientation, true, true,
                false);
        CategoryPlot plot = chart.getCategoryPlot();
        BarRenderer renderer = (BarRenderer) plot.getRenderer();
        renderer.setDrawBarOutline(false);

        DecimalFormat labelFormatter = new DecimalFormat("$##,###.00");
        labelFormatter.setNegativePrefix("(");
        labelFormatter.setNegativeSuffix(")");
        renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}", labelFormatter));
        renderer.setBaseItemLabelsVisible(true);
    } else {
        chart = ChartFactory.createBarChart(title, // chart title
                xLabel, // domain axis label
                yLabel, // range axis label
                dataset, // data
                orientation, // orientation
                true, // include legend
                true, // tooltips?
                false // URLs?
        );
    }

    // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...

    // set the background color for the chart...
    chart.setBackgroundPaint(Color.white);

    // get a reference to the plot for further customisation...
    CategoryPlot plot = chart.getCategoryPlot();
    plot.setBackgroundPaint(Color.lightGray);
    plot.setDomainGridlinePaint(Color.white);
    plot.setDomainGridlinesVisible(true);
    plot.setRangeGridlinePaint(Color.white);

    // set the range axis to display integers only...
    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

    // disable bar outlines...
    if (layout.equalsIgnoreCase("stacked")) {
        StackedBarRenderer renderer = (StackedBarRenderer) plot.getRenderer();
        renderer.setDrawBarOutline(false);
        renderer.setBaseItemLabelsVisible(true);
        renderer.setSeriesItemLabelGenerator(0, new StandardCategoryItemLabelGenerator());
    } else if (layout.equalsIgnoreCase("layered")) {
        LayeredBarRenderer renderer = new LayeredBarRenderer();
        renderer.setDrawBarOutline(false);
        plot.setRenderer(renderer);
        plot.setRowRenderingOrder(SortOrder.DESCENDING);
    } else {
        BarRenderer renderer = (BarRenderer) plot.getRenderer();
        renderer.setDrawBarOutline(false);
    }

    /*   CategoryAxis domainAxis = plot.getDomainAxis();
     domainAxis.setCategoryLabelPositions(
         CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0)
     );*/
    // OPTIONAL CUSTOMISATION COMPLETED.

    return chart;
}

From source file:Output.SplitChart.java

public void drawGeneratorProfitAndNetEarningsData(String outputTimeTypeSelect, int iStartTime, int iEndTime,
        int[] selectIndex, boolean bProfit) {

    if (bProfit) {
        this.chartTitle = "GenCo Daily Profits";
    } else {/*  ww w.j  a va2 s.co m*/
        this.chartTitle = "GenCo Daily Net Earnings";
    }

    ArrayList genAgentProfitAndNetGainByDay = this.amesFrame.getAMESMarket().getGenAgentProfitAndNetGainByDay();

    boolean draw3DChart = false;
    this.dataset = new XYSeriesCollection();
    DefaultCategoryDataset dataset3D = new DefaultCategoryDataset();

    Object[][] genData = this.amesFrame.getGeneratorData();
    int iGenNumber = genData.length;

    if ((selectIndex.length < 1) || (selectIndex[0] == 0)) {
        if (outputTimeTypeSelect.equalsIgnoreCase("Entire Run")) {
            int iDayNumber = genAgentProfitAndNetGainByDay.size();
            double[][] genProfit;

            this.chartTitle = this.chartTitle + "\n " + "for Entire Run";

            for (int i = 0; i < iGenNumber; i++) {
                String genName = (String) genData[i][0];

                XYSeries series1;

                series1 = new XYSeries(genName);

                for (int iDay = 0; iDay < iDayNumber; iDay++) {
                    genProfit = (double[][]) genAgentProfitAndNetGainByDay.get(iDay);

                    if (bProfit) {
                        series1.add(iDay + 1, (Math.round(genProfit[i][0] * 1000)) / 1000.0);
                    } else {
                        series1.add(iDay + 1, (Math.round(genProfit[i][1] * 1000)) / 1000.0);
                    }
                }

                this.dataset.addSeries(series1);
            }
        } else if (outputTimeTypeSelect.equalsIgnoreCase("Start to End Day")) {
            int iDayNumber = (iEndTime - iStartTime) + 1;
            double[][] genProfit;

            this.chartTitle = this.chartTitle + "\n " + "From Day " + iStartTime + " to Day " + iEndTime;

            for (int i = 0; i < iGenNumber; i++) {
                String genName = (String) genData[i][0];

                XYSeries series1;

                series1 = new XYSeries(genName);

                for (int iDay = iStartTime - 1; iDay < iEndTime; iDay++) {
                    genProfit = (double[][]) genAgentProfitAndNetGainByDay.get(iDay);

                    if (bProfit) {
                        series1.add(iDay + 1, (Math.round(genProfit[i][0] * 1000)) / 1000.0);
                    } else {
                        series1.add(iDay + 1, (Math.round(genProfit[i][1] * 1000)) / 1000.0);
                    }
                }

                this.dataset.addSeries(series1);
            }
        }
    } else {
        int iDataNumber = selectIndex.length;

        if (outputTimeTypeSelect.equalsIgnoreCase("Entire Run")) {
            int iDayNumber = genAgentProfitAndNetGainByDay.size();
            double[][] genProfit;

            this.chartTitle = this.chartTitle + "\n " + "for Entire Run";

            for (int i = 0; i < iDataNumber; i++) {
                String genName = (String) genData[selectIndex[i] - 1][0];

                XYSeries series1;

                series1 = new XYSeries(genName);

                for (int iDay = 0; iDay < iDayNumber; iDay++) {
                    genProfit = (double[][]) genAgentProfitAndNetGainByDay.get(iDay);

                    if (bProfit) {
                        series1.add(iDay + 1, (Math.round(genProfit[selectIndex[i] - 1][0] * 1000)) / 1000.0);
                    } else {
                        series1.add(iDay + 1, (Math.round(genProfit[selectIndex[i] - 1][1] * 1000)) / 1000.0);
                    }
                }

                this.dataset.addSeries(series1);
            }
        } else if (outputTimeTypeSelect.equalsIgnoreCase("Start to End Day")) {
            int iDayNumber = (iEndTime - iStartTime) + 1;
            double[][] genProfit;

            this.chartTitle = this.chartTitle + "\n " + "From Day " + iStartTime + " to Day " + iEndTime;

            for (int i = 0; i < iDataNumber; i++) {
                String genName = (String) genData[selectIndex[i] - 1][0];

                XYSeries series1;

                series1 = new XYSeries(genName);

                for (int iDay = iStartTime - 1; iDay < iEndTime; iDay++) {
                    genProfit = (double[][]) genAgentProfitAndNetGainByDay.get(iDay);

                    if (bProfit) {
                        series1.add(iDay + 1, (Math.round(genProfit[selectIndex[i] - 1][0] * 1000)) / 1000.0);
                    } else {
                        series1.add(iDay + 1, (Math.round(genProfit[selectIndex[i] - 1][1] * 1000)) / 1000.0);
                    }
                }

                this.dataset.addSeries(series1);
            }
        }
    }

    if (draw3DChart) {

        this.chart = ChartFactory.createBarChart3D(this.chartTitle, // chart title
                "Value Category", // domain axis label
                "Value ($/D)", // range axis label
                dataset3D, // data
                PlotOrientation.VERTICAL, // orientation
                true, // include legend
                true, // tooltips
                false // urls
        );

        final CategoryPlot plot = this.chart.getCategoryPlot();
        final CategoryAxis axis = plot.getDomainAxis();
        axis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 8.0));

        final CategoryItemRenderer renderer = plot.getRenderer();
        renderer.setItemLabelsVisible(true);
        final BarRenderer r = (BarRenderer) renderer;
        r.setMaximumBarWidth(0.05);
    } else {
        // create the chart...
        this.chart = ChartFactory.createXYLineChart(this.chartTitle, // chart title
                "Day", // x axis label
                "Money ($/D)", // y axis label
                this.dataset, // data
                PlotOrientation.VERTICAL, true, // include legend
                true, // tooltips
                false // urls
        );

        this.chart.setBackgroundPaint(Color.white);

        // get a reference to the plot for further customisation...
        final XYPlot plot = this.chart.getXYPlot();
        plot.setBackgroundPaint(Color.white);
        plot.setDomainGridlinePaint(Color.blue);
        plot.setRangeGridlinePaint(Color.blue);

        final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
        XYToolTipGenerator generator = new StandardXYToolTipGenerator("{2}", new DecimalFormat("0.00"),
                new DecimalFormat("0.00"));
        renderer.setToolTipGenerator(generator);
        plot.setRenderer(renderer);

        NumberAxis xAxis = (NumberAxis) plot.getDomainAxis();
        xAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

    }

    this.chart.getTitle().setFont(this.font);
    this.chartPanel.setChart(this.chart);
}

From source file:Output.SplitChart.java

public void drawLSESurplusData(String outputTimeTypeSelect, int iStartTime, int iEndTime, int[] selectIndex) {
    String[] names = { "LSE Name", "Day Index", "Surplus ($/H)" };

    this.chartTitle = "LSE Daily Net Earnings";
    ArrayList lseAgentSurplusByDay = this.amesFrame.getAMESMarket().getLSEAgentSurplusByDay();

    boolean draw3DChart = false;
    this.dataset = new XYSeriesCollection();
    DefaultCategoryDataset dataset3D = new DefaultCategoryDataset();

    Object[][] lseHybridData = this.amesFrame.getLSEHybridDemandData();
    int iLSENumber = lseHybridData.length;

    if ((selectIndex.length < 1) || (selectIndex[0] == 0)) {
        if (outputTimeTypeSelect.equalsIgnoreCase("Entire Run")) {
            int iDayNumber = lseAgentSurplusByDay.size();
            double[][] lseSurplus;

            this.chartTitle = this.chartTitle + "\n " + "for Entire Run";

            for (int i = 0; i < iLSENumber; i++) {
                String lseName = (String) lseHybridData[i][0];

                XYSeries series1 = new XYSeries(lseName + " Surplus");

                for (int iDay = 0; iDay < iDayNumber; iDay++) {
                    lseSurplus = (double[][]) lseAgentSurplusByDay.get(iDay);

                    series1.add(iDay + 1, (Math.round(lseSurplus[i][0] * 1000)) / 1000.0);
                }//from   ww w.  j  a v a 2  s .  com

                this.dataset.addSeries(series1);
            }
        } else if (outputTimeTypeSelect.equalsIgnoreCase("Start to End Day")) {
            int iDayNumber = (iEndTime - iStartTime) + 1;
            double[][] lseSurplus;

            this.chartTitle = this.chartTitle + "\n " + "From Day " + iStartTime + " to Day " + iEndTime;

            for (int i = 0; i < iLSENumber; i++) {
                String lseName = (String) lseHybridData[i][0];

                XYSeries series1 = new XYSeries(lseName + " Surplus");

                for (int iDay = iStartTime - 1; iDay < iEndTime; iDay++) {
                    lseSurplus = (double[][]) lseAgentSurplusByDay.get(iDay);

                    series1.add(iDay + 1, (Math.round(lseSurplus[i][0] * 1000)) / 1000.0);
                }

                this.dataset.addSeries(series1);
            }
        }
    } else {
        int iDataNumber = selectIndex.length;
        int iField = names.length;

        if (outputTimeTypeSelect.equalsIgnoreCase("Entire Run")) {
            int iDayNumber = lseAgentSurplusByDay.size();
            double[][] lseSurplus;

            this.chartTitle = this.chartTitle + "\n " + "for Entire Run";

            for (int i = 0; i < iDataNumber; i++) {
                String lseName = (String) lseHybridData[selectIndex[i] - 1][0];

                XYSeries series1 = new XYSeries(lseName + " Surplus");

                for (int iDay = 0; iDay < iDayNumber; iDay++) {
                    lseSurplus = (double[][]) lseAgentSurplusByDay.get(iDay);

                    series1.add(iDay + 1, (Math.round(lseSurplus[selectIndex[i] - 1][0] * 1000)) / 1000.0);
                }

                this.dataset.addSeries(series1);
            }
        } else if (outputTimeTypeSelect.equalsIgnoreCase("Start to End Day")) {
            int iDayNumber = (iEndTime - iStartTime) + 1;
            double[][] lseSurplus;

            this.chartTitle = this.chartTitle + "\n " + "From Day " + iStartTime + " to Day " + iEndTime;

            for (int i = 0; i < iDataNumber; i++) {
                String lseName = (String) lseHybridData[selectIndex[i] - 1][0];

                XYSeries series1 = new XYSeries(lseName + " Surplus");

                for (int iDay = iStartTime - 1; iDay < iEndTime; iDay++) {
                    lseSurplus = (double[][]) lseAgentSurplusByDay.get(iDay);

                    series1.add(iDay + 1, (Math.round(lseSurplus[selectIndex[i] - 1][0] * 1000)) / 1000.0);
                }

                this.dataset.addSeries(series1);
            }
        }
    }

    if (draw3DChart) {

        this.chart = ChartFactory.createBarChart3D(this.chartTitle, // chart title
                "Value Category", // domain axis label
                "Value", // range axis label
                dataset3D, // data
                PlotOrientation.VERTICAL, // orientation
                true, // include legend
                true, // tooltips
                false // urls
        );

        final CategoryPlot plot = this.chart.getCategoryPlot();
        final CategoryAxis axis = plot.getDomainAxis();
        axis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 8.0));

        final CategoryItemRenderer renderer = plot.getRenderer();
        renderer.setItemLabelsVisible(true);
        final BarRenderer r = (BarRenderer) renderer;
        r.setMaximumBarWidth(0.05);
    } else {
        // create the chart...
        this.chart = ChartFactory.createXYLineChart(this.chartTitle, // chart title
                "Day", // x axis label
                "Value", // y axis label
                this.dataset, // data
                PlotOrientation.VERTICAL, true, // include legend
                true, // tooltips
                false // urls
        );

        this.chart.setBackgroundPaint(Color.white);

        // get a reference to the plot for further customisation...
        final XYPlot plot = this.chart.getXYPlot();
        plot.setBackgroundPaint(Color.white);
        plot.setDomainGridlinePaint(Color.blue);
        plot.setRangeGridlinePaint(Color.blue);

        final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
        XYToolTipGenerator generator = new StandardXYToolTipGenerator("{2}", new DecimalFormat("0.00"),
                new DecimalFormat("0.00"));
        renderer.setToolTipGenerator(generator);
        plot.setRenderer(renderer);

        NumberAxis xAxis = (NumberAxis) plot.getDomainAxis();
        xAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

    }

    this.chart.getTitle().setFont(this.font);
    this.chartPanel.setChart(this.chart);
}

From source file:com.afunms.system.manage.equipManager.java

/**
 * Creates a chart./*from ww  w.  j a v a2 s  .  com*/
 * 
 * @param dataset
 *                the dataset.
 * 
 * @return The chart.
 */
private JFreeChart _createChart(final CategoryDataset dataset) {

    final JFreeChart chart = ChartFactory.createBarChart3D("IP", // chart
            // title
            "IP", // domain axis label
            "", // range axis label
            dataset, // data
            PlotOrientation.HORIZONTAL, // orientation
            true, // include legend
            true, // tooltips
            false // urls
    );
    final CategoryPlot plot = chart.getCategoryPlot();
    plot.setForegroundAlpha(1.0f);

    // left align the category labels...
    final CategoryAxis axis = plot.getDomainAxis();
    final CategoryLabelPositions p = axis.getCategoryLabelPositions();

    final CategoryLabelPosition left = new CategoryLabelPosition(RectangleAnchor.LEFT,
            TextBlockAnchor.CENTER_LEFT, TextAnchor.CENTER_LEFT, 0.0, CategoryLabelWidthType.RANGE, 0.30f);
    axis.setCategoryLabelPositions(CategoryLabelPositions.replaceLeftPosition(p, left));
    return chart;
}