Example usage for org.jfree.chart JFreeChart JFreeChart

List of usage examples for org.jfree.chart JFreeChart JFreeChart

Introduction

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

Prototype

public JFreeChart(Plot plot) 

Source Link

Document

Creates a new chart based on the supplied plot.

Usage

From source file:com.mgmtp.perfload.perfalyzer.reportpreparation.PlotCreator.java

public JFreeChart createPlot(final AxisType xAxisType, final AxisType yAxisType,
        final RendererType rendererType, final DisplayData displayData, final DataRange dataRange,
        boolean showMarkers, final NumberDataSet... dataSets) {

    NumberAxis xAxis = createAxis(xAxisType, resourceBundle.getString(displayData.getUnitX()));

    XYPlot plot;/* w ww  .j  a  v a  2 s  . c  o  m*/
    if (dataSets.length == 1) {
        NumberAxis yAxis = createAxis(yAxisType, resourceBundle.getString(displayData.getUnitY()));
        plot = new XYPlot(dataSets[0], xAxis, yAxis, rendererType.createRenderer());
    } else {
        CombinedDomainXYPlot combinedPlot = new CombinedDomainXYPlot(xAxis);
        for (int i = 0; i < dataSets.length; ++i) {
            NumberDataSet dataSet = dataSets[i];
            // no range for y-axis!
            NumberAxis yAxis = createAxis(yAxisType,
                    resourceBundle.getString(displayData.getUnitYList().get(i)));
            XYPlot subPlot = new XYPlot(dataSet, null, yAxis, rendererType.createRenderer());
            combinedPlot.add(subPlot);
            formatPlot(subPlot);
        }
        plot = combinedPlot;
    }

    JFreeChart chart = new JFreeChart(plot);
    CHART_THEME.apply(chart);

    formatPlot(plot);

    if (showMarkers) {
        for (Marker marker : markers) {
            IntervalMarker im = new IntervalMarker(marker.getLeftMillis() / 1000L,
                    marker.getRightMillis() / 1000L);
            im.setLabel(marker.getName());
            im.setLabelFont(new Font("Sans Serif", Font.ITALIC | Font.BOLD, 14));
            im.setLabelAnchor(RectangleAnchor.TOP);
            im.setLabelOffset(new RectangleInsets(8d, 0d, 0d, 0d));
            im.setLabelPaint(Color.BLACK);
            im.setAlpha(.2f);
            im.setPaint(Color.WHITE);
            im.setOutlinePaint(Color.BLACK);
            im.setOutlineStroke(new BasicStroke(1.0f));
            plot.addDomainMarker(im, Layer.BACKGROUND);
        }
    }

    LegendTitle legend = chart.getLegend();
    legend.setBackgroundPaint(new Color(229, 229, 229));
    legend.setFrame(
            new LineBorder(new Color(213, 213, 213), new BasicStroke(1.0f), legend.getFrame().getInsets()));

    // only for non-logarithmic axes
    // range must be set after plot is created, otherwise nothing is drawn
    if (dataRange != null && !xAxisType.equals(AxisType.LOGARITHMIC)) {
        xAxis.setRange(dataRange.getLowerSeconds(), dataRange.getUpperSeconds());
    }

    return chart;
}

From source file:net.sf.maltcms.chromaui.chromatogram1Dviewer.ui.panel.Chromatogram1DHeatmapViewerPanel.java

/**
 * Creates new form Chromatogram2DViewerPanel
 *///w ww .j a  va2 s .c  o  m
public Chromatogram1DHeatmapViewerPanel(InstanceContent topComponentInstanceContent, Lookup tcLookup,
        ADataset2D<IChromatogram1D, IScan> ds) {
    initComponents();
    this.content = topComponentInstanceContent;
    this.lookup = tcLookup;
    chart = new JFreeChart(new XYPlot());
    chartPanel = new ContextAwareChartPanel(chart, true, true, true, true, true);
    Cursor crosshairCursor = new Cursor(Cursor.CROSSHAIR_CURSOR);
    chartPanel.setCursor(crosshairCursor);
    //        chart.addProgressListener(cdxpanel);
    chartPanel.setInitialDelay(100);
    chartPanel.setDismissDelay(30000);
    chartPanel.setReshowDelay(0);
    chartPanel.setFocusable(true);
    jPanel2.add(chartPanel, BorderLayout.CENTER);
    content.add(chartPanel);
    addKeyListener(this);
    dataRange = DatasetUtilities.findDomainBounds(ds);
}

From source file:DashboardInterface.CableOutSpeedDial.java

public CableOutSpeedDial(JPanel parentIn) {
    super(new BorderLayout());
    parent = parentIn;/* w  ww  .  j a  v  a 2 s .c o m*/
    dataset1 = new DefaultValueDataset(0D);
    dataset2 = new DefaultValueDataset(0D);
    pipe = MessagePipeline.getInstance();
    pipe.attach(this);
    DialPlot dialplot = new DialPlot();
    dialplot.setView(0.0D, 0.0D, 1.0D, 1.0D);
    dialplot.setDataset(0, dataset1);
    dialplot.setDataset(1, dataset2);
    setBackground(Color.WHITE);
    StandardDialFrame standarddialframe = new StandardDialFrame();
    standarddialframe.setBackgroundPaint(Color.lightGray);
    standarddialframe.setForegroundPaint(Color.darkGray);

    dialplot.setDialFrame(standarddialframe);

    DialBackground dialbackground = new DialBackground(Color.LIGHT_GRAY);

    dialbackground.setGradientPaintTransformer(
            new StandardGradientPaintTransformer(GradientPaintTransformType.VERTICAL));
    dialplot.setBackground(dialbackground);

    DialTextAnnotation dialtextannotation = new DialTextAnnotation("Cable Out (ft)");
    dialtextannotation.setFont(new Font("Dialog", 1, 12));
    dialtextannotation.setPaint(new Color(36, 130, 9));
    dialtextannotation.setRadius(0.47999999999999996D);
    dialplot.addLayer(dialtextannotation);

    DialTextAnnotation dialtextannotation2 = new DialTextAnnotation("Speed (kts)");
    dialtextannotation2.setFont(new Font("Dialog", 1, 12));
    dialtextannotation2.setPaint(Color.BLUE);
    dialtextannotation2.setRadius(0.78999999999999996D);
    dialplot.addLayer(dialtextannotation2);

    /*DialValueIndicator dialvalueindicator = new DialValueIndicator(0);
    dialvalueindicator.setFont(new Font("Dialog", 0, 10));
    dialvalueindicator.setOutlinePaint(Color.BLACK);
    dialvalueindicator.setRadius(0.84999999999999998D);
    dialvalueindicator.setAngle(-90D);
    dialplot.addLayer(dialvalueindicator);
            
    DialValueIndicator dialvalueindicator1 = new DialValueIndicator(1);
    dialvalueindicator1.setFont(new Font("Dialog", 0, 10));
    dialvalueindicator1.setOutlinePaint(Color.BLACK);
    dialvalueindicator1.setRadius(0.60999999999999998D);
    dialvalueindicator1.setAngle(-90D);
    dialplot.addLayer(dialvalueindicator1);*/

    StandardDialScale standarddialscale = new StandardDialScale(0D, 90D, -110D, -320D, 10D, 4);
    standarddialscale.setTickRadius(0.88D);
    standarddialscale.setTickLabelOffset(0.14999999999999999D);
    standarddialscale.setTickLabelFont(new Font("Dialog", 0, 14));
    standarddialscale.setMajorTickPaint(Color.BLUE);
    standarddialscale.setMinorTickPaint(Color.BLUE);
    dialplot.addScale(0, standarddialscale);

    StandardDialScale standarddialscale1 = new StandardDialScale(0.0D, 6000D, -110D, -320D, 750D, 4);
    standarddialscale1.setTickRadius(0.5D);
    standarddialscale1.setTickLabelOffset(0.14999999999999999D);
    standarddialscale1.setTickLabelFont(new Font("Dialog", 0, 10));
    standarddialscale1.setTickLabelPaint(new Color(36, 130, 9));
    standarddialscale1.setMajorTickPaint(new Color(36, 130, 9));
    standarddialscale1.setMinorTickPaint(new Color(36, 130, 9));
    dialplot.addScale(1, standarddialscale1);

    dialplot.mapDatasetToScale(1, 1);

    org.jfree.chart.plot.dial.DialPointer.Pointer pointer = new org.jfree.chart.plot.dial.DialPointer.Pointer(
            0);
    pointer.setFillPaint(Color.BLUE);
    dialplot.addPointer(pointer);

    org.jfree.chart.plot.dial.DialPointer.Pointer pin = new org.jfree.chart.plot.dial.DialPointer.Pointer(1);
    pin.setRadius(0.55000000000000004D);
    pin.setFillPaint(new Color(36, 130, 9));
    dialplot.addPointer(pin);

    DialCap dialcap = new DialCap();
    dialcap.setRadius(0.10000000000000001D);
    dialplot.setCap(dialcap);

    Dimension size = parent.getBounds().getSize();
    int width = parent.getWidth();
    int height = parent.getHeight();

    width = 200;

    JFreeChart jfreechart = new JFreeChart(dialplot);
    jfreechart.setBackgroundPaint(Color.WHITE);
    ChartPanel chartpanel = new ChartPanel(jfreechart);
    chartpanel.setPreferredSize(new Dimension(width, width));

    add(chartpanel);
}

From source file:org.esa.beam.visat.toolviews.diag.TileCacheMonitor.java

/**
 * Creates a new monitor panel.//w w  w.jav  a  2  s .  c  om
 *
 * @return the monitor panel
 */
public JPanel createPanel() {

    JPanel mainPanel = new JPanel(new BorderLayout());
    CombinedDomainXYPlot plot = new CombinedDomainXYPlot(new DateAxis("Time"));
    this.datasets = new TimeSeriesCollection[4];
    this.datasets[0] = addSubPlot(plot, "#Tiles");
    this.datasets[1] = addSubPlot(plot, "#Hits");
    this.datasets[2] = addSubPlot(plot, "#Misses");
    this.datasets[3] = addSubPlot(plot, "Mem (kB)");

    JFreeChart chart = new JFreeChart(plot);
    LegendTitle legend = (LegendTitle) chart.getSubtitle(0);
    legend.setPosition(RectangleEdge.RIGHT);
    legend.setMargin(new RectangleInsets(UnitType.ABSOLUTE, 0, 4, 0, 4));
    chart.setBorderPaint(Color.black);
    chart.setBorderVisible(true);
    chart.setBackgroundPaint(Color.white);

    plot.setBackgroundPaint(Color.lightGray);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);
    plot.setAxisOffset(new RectangleInsets(4, 4, 4, 4));
    ValueAxis axis = plot.getDomainAxis();
    axis.setAutoRange(true);
    axis.setFixedAutoRange(60000.0); // 60 seconds

    textarea = new JTextArea();
    tableModel = new TileCacheTableModel();
    ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(500, 470));
    chartPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

    tabbedPane = new JTabbedPane();
    tabbedPane.add(CACHE_INFO_TAB, new JScrollPane(textarea));
    tabbedPane.add(CACHE_CHART_TAB, chartPanel);
    tabbedPane.add(IMAGES_TAB, new JScrollPane(new JTable(tableModel)));
    tabbedPane.setSelectedIndex(0);

    mainPanel.add(tabbedPane);

    return mainPanel;
}

From source file:org.jax.haplotype.analysis.visualization.GenomicGraphFactory.java

/**
 * Create a snp interval histogram without any axes
 * @param intervals/*from  w  ww  . ja v a 2 s .  c om*/
 *          the intervals to use
 * @param startInBasePairs
 *          where should we start the graph?
 * @param extentInBasePairs
 *          how far should the graph extend
 * @param visualInterval
 *          the visual interval to use
 * @param xAxisLabel
 *          the x axis title to use
 * @param yAxisLabel
 *          the y axis title to use
 * @return
 *          the histogram
 */
public JFreeChart createSnpIntervalHistogram(final List<? extends RealValuedBasePairInterval> intervals,
        final long startInBasePairs, final long extentInBasePairs, final HighlightedSnpInterval visualInterval,
        final String xAxisLabel, final String yAxisLabel) {
    // create the axes
    NumberAxis xAxis = new NumberAxis();
    xAxis.setAutoRangeIncludesZero(false);
    xAxis.setRange(new Range(startInBasePairs, startInBasePairs + extentInBasePairs));
    if (xAxisLabel != null) {
        xAxis.setLabel(xAxisLabel);
    }

    NumberAxis yAxis = new NumberAxis();
    if (yAxisLabel != null) {
        yAxis.setLabel(yAxisLabel);
    }

    // create the plot
    XYPlot plot = this.createSnpIntervalHistogramPlot(intervals, visualInterval, xAxis, yAxis);

    // create the final chart
    JFreeChart histogram = new JFreeChart(plot);
    histogram.removeLegend();

    return histogram;
}

From source file:ecg.ecgshow.ECGShowUI.java

private void createECGData(long timeZone) {
    ECGData = new JPanel(new GridLayout(LEAD_COUNT, 1));
    dateAxises = new DateAxis[LEAD_COUNT];
    ECGSeries = new TimeSeries[LEAD_COUNT * 2];
    for (int i = 0; i < LEAD_COUNT; i++) {
        TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(); //XYDataset  TimeSeriesCollection
        ECGSeries[i] = new TimeSeries("?" + (i + 1));
        ECGSeries[i].setMaximumItemCount(500);
        ECGSeries[i + LEAD_COUNT] = new TimeSeries("");
        ECGSeries[i + LEAD_COUNT].setMaximumItemAge(timeZone);
        ECGSeries[i + LEAD_COUNT].setMaximumItemCount(2);

        timeseriescollection.addSeries(ECGSeries[i]);
        timeseriescollection.addSeries(ECGSeries[i + LEAD_COUNT]);

        //DateAxis dateaxis = new DateAxis("Time");
        dateAxises[i] = new DateAxis("");
        dateAxises[i].setTickLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.016)));
        dateAxises[i].setLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.018)));
        dateAxises[i].setTickLabelsVisible(true);
        dateAxises[i].setVisible(false);

        //NumberAxis numberaxis = new NumberAxis("ecg");
        NumberAxis numberaxis = new NumberAxis("ecg");
        numberaxis.setTickLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.016)));
        numberaxis.setLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.018)));
        numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        numberaxis.setVisible(false);/*from ww  w  .j av a2  s .c  o m*/
        numberaxis.setLowerBound(1500D);
        numberaxis.setUpperBound(3000D);

        XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer(true, false);
        xylineandshaperenderer.setSeriesPaint(0, Color.GREEN); //
        xylineandshaperenderer.setSeriesStroke(0, new BasicStroke(2));
        xylineandshaperenderer.setSeriesPaint(1, Color.LIGHT_GRAY); //
        xylineandshaperenderer.setSeriesStroke(1, new BasicStroke(5));

        XYPlot xyplot = new XYPlot(timeseriescollection, dateAxises[i], numberaxis, xylineandshaperenderer);
        xyplot.setBackgroundPaint(Color.LIGHT_GRAY);
        xyplot.setDomainGridlinePaint(Color.LIGHT_GRAY);
        xyplot.setRangeGridlinePaint(Color.LIGHT_GRAY);
        xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D));
        xyplot.setBackgroundPaint(Color.BLACK);

        JFreeChart jfreechart = new JFreeChart(xyplot);
        jfreechart.setBackgroundPaint(new Color(237, 237, 237));//?
        jfreechart.getLegend().setVisible(false);

        ChartPanel chartpanel = new ChartPanel(jfreechart, (int) (WIDTH * 46 / 100), (int) (HEIGHT * 17 / 100),
                0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE, true, true, false, true, false, false);

        chartpanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0) //??0
                , BorderFactory.createEmptyBorder() //????
        ));
        chartpanel.setMouseZoomable(false); //?
        ECGData.add(chartpanel);
    }
}

From source file:it.eng.spagobi.engines.chart.bo.charttypes.linecharts.LineChart.java

public JFreeChart createChart() {

    logger.debug("IN");
    CategoryPlot plot = new CategoryPlot();

    NumberAxis rangeAxis = new NumberAxis("Kpi Values");
    rangeAxis.setLabelFont(new Font("Arial", Font.PLAIN, 12));
    Color colorLabel = Color.decode("#000000");
    rangeAxis.setLabelPaint(colorLabel);
    rangeAxis.setTickLabelFont(new Font("Arial", Font.PLAIN, 10));
    rangeAxis.setTickLabelPaint(colorLabel);
    plot.setRangeAxis(rangeAxis);//from w w  w  .j av  a 2 s  . c o m

    CategoryAxis domainAxis = new CategoryAxis();
    domainAxis.setLabelFont(new Font("Arial", Font.PLAIN, 10));
    domainAxis.setLabelPaint(colorLabel);
    domainAxis.setTickLabelFont(new Font("Arial", Font.PLAIN, 10));
    domainAxis.setTickLabelPaint(colorLabel);
    plot.setDomainAxis(domainAxis);

    plot.setOrientation(PlotOrientation.VERTICAL);
    plot.setRangeGridlinesVisible(true);
    plot.setDomainGridlinesVisible(true);

    //I create a line renderer 
    MyStandardCategoryItemLabelGenerator generator = null;

    LineAndShapeRenderer lineRenderer = new LineAndShapeRenderer();
    lineRenderer.setShapesFilled(true);
    lineRenderer.setBaseItemLabelGenerator(generator);
    lineRenderer.setBaseItemLabelFont(new Font("Arial", Font.PLAIN, 12));
    lineRenderer.setBaseItemLabelPaint(colorLabel);
    lineRenderer.setBaseItemLabelsVisible(true);

    DefaultCategoryDataset datasetLine = (DefaultCategoryDataset) datasetMap.getDatasets().get("line");

    for (Iterator iterator = datasetLine.getRowKeys().iterator(); iterator.hasNext();) {
        String serName = (String) iterator.next();
        String labelName = "";
        int index = -1;
        index = datasetLine.getRowIndex(serName);

        Color color = Color.decode("#990200");
        lineRenderer.setSeriesPaint(index, color);
    }

    plot.setDataset(0, datasetLine);
    plot.setRenderer(0, lineRenderer);

    plot.getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    JFreeChart chart = new JFreeChart(plot);
    logger.debug("Chart created");
    TextTitle title = new TextTitle(name, new Font("Arial", Font.BOLD, 16), Color.decode("#990200"),
            RectangleEdge.TOP, HorizontalAlignment.CENTER, VerticalAlignment.TOP, RectangleInsets.ZERO_INSETS);
    chart.setTitle(title);
    TextTitle subTitle = new TextTitle(subName, new Font("Arial", Font.PLAIN, 12), Color.decode("#000000"),
            RectangleEdge.TOP, HorizontalAlignment.CENTER, VerticalAlignment.TOP, RectangleInsets.ZERO_INSETS);
    chart.addSubtitle(subTitle);
    TextTitle subTitle2 = new TextTitle(subName, new Font("Arial", Font.PLAIN, 8), Color.decode("#FFFFFF"),
            RectangleEdge.TOP, HorizontalAlignment.CENTER, VerticalAlignment.TOP, RectangleInsets.ZERO_INSETS);
    chart.addSubtitle(subTitle2);
    chart.removeLegend();

    chart.setBackgroundPaint(Color.white);
    logger.debug("OUT");
    return chart;
}

From source file:no.met.jtimeseries.netcdf.NetcdfChartProvider.java

/**
 * Convert {@link Phenomenon} list to a {@link JFreeChart}
 * //  w ww  .jav a  2s . com
 * @param dataList The data to convert
 * @return A complete chart, ready to display
 */
private JFreeChart getChart(List<NumberPhenomenon> dataList) {

    JFreeChart chart = new JFreeChart(getPlotProvider().getPlot(dataList));
    if (header != null)
        chart.setTitle(header);
    return chart;
}

From source file:org.jfree.chart.demo.OverlaidBarChartDemo.java

/**
 * Default constructor.//from w  w w.ja  v a2 s. c  o m
 *
 * @param title  the frame title.
 */
public OverlaidBarChartDemo(final String title) {

    super(title);

    // create the first dataset...
    DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
    dataset1.addValue(1.0, "S1", "Category 1");
    dataset1.addValue(4.0, "S1", "Category 2");
    dataset1.addValue(3.0, "S1", "Category 3");
    dataset1.addValue(5.0, "S1", "Category 4");
    dataset1.addValue(5.0, "S1", "Category 5");
    dataset1.addValue(7.0, "S1", "Category 6");
    dataset1.addValue(7.0, "S1", "Category 7");
    dataset1.addValue(8.0, "S1", "Category 8");

    dataset1.addValue(5.0, "S2", "Category 1");
    dataset1.addValue(7.0, "S2", "Category 2");
    dataset1.addValue(6.0, "S2", "Category 3");
    dataset1.addValue(8.0, "S2", "Category 4");
    dataset1.addValue(4.0, "S2", "Category 5");
    dataset1.addValue(4.0, "S2", "Category 6");
    dataset1.addValue(2.0, "S2", "Category 7");
    dataset1.addValue(1.0, "S2", "Category 8");

    // create the first renderer...
    //      final CategoryLabelGenerator generator = new StandardCategoryLabelGenerator();
    final CategoryItemRenderer renderer = new BarRenderer();
    //    renderer.setLabelGenerator(generator);
    renderer.setItemLabelsVisible(true);

    final CategoryPlot plot = new CategoryPlot();
    plot.setDataset(dataset1);
    plot.setRenderer(renderer);

    plot.setDomainAxis(new CategoryAxis("Category"));
    plot.setRangeAxis(new NumberAxis("Value"));

    plot.setOrientation(PlotOrientation.VERTICAL);
    plot.setRangeGridlinesVisible(true);
    plot.setDomainGridlinesVisible(true);

    // now create the second dataset and renderer...
    DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
    dataset2.addValue(9.0, "T1", "Category 1");
    dataset2.addValue(7.0, "T1", "Category 2");
    dataset2.addValue(2.0, "T1", "Category 3");
    dataset2.addValue(6.0, "T1", "Category 4");
    dataset2.addValue(6.0, "T1", "Category 5");
    dataset2.addValue(9.0, "T1", "Category 6");
    dataset2.addValue(5.0, "T1", "Category 7");
    dataset2.addValue(4.0, "T1", "Category 8");

    final CategoryItemRenderer renderer2 = new LineAndShapeRenderer();
    plot.setDataset(1, dataset2);
    plot.setRenderer(1, renderer2);

    // create the third dataset and renderer...
    final ValueAxis rangeAxis2 = new NumberAxis("Axis 2");
    plot.setRangeAxis(1, rangeAxis2);

    DefaultCategoryDataset dataset3 = new DefaultCategoryDataset();
    dataset3.addValue(94.0, "R1", "Category 1");
    dataset3.addValue(75.0, "R1", "Category 2");
    dataset3.addValue(22.0, "R1", "Category 3");
    dataset3.addValue(74.0, "R1", "Category 4");
    dataset3.addValue(83.0, "R1", "Category 5");
    dataset3.addValue(9.0, "R1", "Category 6");
    dataset3.addValue(23.0, "R1", "Category 7");
    dataset3.addValue(98.0, "R1", "Category 8");

    plot.setDataset(2, dataset3);
    final CategoryItemRenderer renderer3 = new LineAndShapeRenderer();
    plot.setRenderer(2, renderer3);
    plot.mapDatasetToRangeAxis(2, 1);

    // change the rendering order so the primary dataset appears "behind" the 
    // other datasets...
    plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);

    plot.getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    final JFreeChart chart = new JFreeChart(plot);
    chart.setTitle("Overlaid Bar Chart");
    //  chart.setLegend(new StandardLegend());

    // add the chart to a panel...
    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
    setContentPane(chartPanel);

}

From source file:com.bdb.weather.display.current.Barometer.java

private ChartViewer createChartElements(Pressure min, Pressure max) {
    Color backgroundDialColor = StageUtilities
            .toAwtColor(colorPrefs.getColorPref(ColorPreferences.GUAGE_DIAL_COLOR));
    Paint backgroundPaint = new GradientPaint(0.0f, 0.0f, Color.LIGHT_GRAY, 100.0f, 0.0f, backgroundDialColor);
    DialBackground background = new DialBackground(backgroundPaint);
    plot.addLayer(background);/*  ww w.j  ava  2s. c  o m*/
    double dialTickIncrements = .2;
    switch (Pressure.getDefaultUnit()) {
    case IN_HG:
        dialTickIncrements = .2;
        break;
    case HECTO_PASCAL:
    case MILLIBAR:
        dialTickIncrements = 10.0;
        break;
    }

    scale = new StandardDialScale(min.get(), max.get(), 240.0, -300.0, dialTickIncrements, 10);
    scale.setTickLabelFont(scale.getTickLabelFont().deriveFont(14.0F).deriveFont(Font.PLAIN));
    scale.setTickRadius(.9);
    scale.setTickLabelFormatter(Pressure.getDefaultFormatter());
    scale.setTickLabelOffset(.25);
    scale.setTickLabelPaint(
            StageUtilities.toAwtColor(colorPrefs.getColorPref(ColorPreferences.GUAGE_SCALE_TEXT)));
    scale.setMajorTickPaint(
            StageUtilities.toAwtColor(colorPrefs.getColorPref(ColorPreferences.GUAGE_SCALE_TICK)));
    scale.setMinorTickPaint(
            StageUtilities.toAwtColor(colorPrefs.getColorPref(ColorPreferences.GUAGE_SCALE_TICK)));
    plot.addScale(0, scale);
    plot.setDialFrame(new StandardDialFrame());
    DialValueIndicator valueInd = new DialValueIndicator(0);
    //
    // Set background and outline paint to be completely transparent so they do not show at all
    //
    valueInd.setBackgroundPaint(new Color(255, 255, 255, 0));
    valueInd.setOutlinePaint(new Color(255, 255, 255, 0));
    valueInd.setPaint(StageUtilities.toAwtColor(colorPrefs.getColorPref(ColorPreferences.GUAGE_VALUE)));
    valueInd.setNumberFormat(Pressure.getDefaultUnit().getFormatterWithUnit());
    plot.addLayer(valueInd);

    double angle = valueInd.getAngle();
    double radius = valueInd.getRadius();

    trendAnnotation.setPaint(StageUtilities.toAwtColor(colorPrefs.getColorPref(ColorPreferences.GUAGE_VALUE)));
    trendAnnotation.setAngle(angle);
    trendAnnotation.setRadius(radius + .1);
    plot.addLayer(trendAnnotation);

    DialPointer.Pointer pointer = new DialPointer.Pointer(0);
    plot.addPointer(pointer);

    DialCap cap = new DialCap();
    cap.setRadius(cap.getRadius() * 1.5);
    plot.setCap(cap);

    range = new StandardDialRange(0.0, 360.0,
            StageUtilities.toAwtColor(colorPrefs.getColorPref(ColorPreferences.GUAGE_VALUE_RANGE)));
    range.setInnerRadius(.40);
    range.setOuterRadius(.45);
    range.setScaleIndex(0);
    plot.addLayer(range);

    JFreeChart chart = new JFreeChart(plot);
    chart.setBackgroundPaint(
            StageUtilities.toAwtColor(colorPrefs.getColorPref(ColorPreferences.GUAGE_BACKGROUND)));

    ChartViewer chartViewer = new ChartViewer(chart);
    chartViewer.setMinHeight(200);
    chartViewer.setMinWidth(200);
    chartViewer.setMaxHeight(10000);
    chartViewer.setMaxWidth(10000);

    //chartViewer.setBorder(new BevelBorder(BevelBorder.RAISED));

    return chartViewer;
}