⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xyblockchartdemo3.java

📁 Jfreechart 源码例子 是和jfreechart development Guide文档相配套的
💻 JAVA
字号:
package demo;

import [D;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.SymbolAxis;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.LookupPaintScale;
import org.jfree.chart.renderer.xy.XYBlockRenderer;
import org.jfree.chart.title.PaintScaleLegend;
import org.jfree.data.xy.DefaultXYZDataset;
import org.jfree.data.xy.XYZDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.RefineryUtilities;

public class XYBlockChartDemo3 extends ApplicationFrame
{
  public XYBlockChartDemo3(String paramString)
  {
    super(paramString);
    JPanel localJPanel = createDemoPanel();
    localJPanel.setPreferredSize(new Dimension(500, 270));
    setContentPane(localJPanel);
  }

  private static JFreeChart createChart(XYZDataset paramXYZDataset)
  {
    NumberAxis localNumberAxis1 = new NumberAxis("X");
    localNumberAxis1.setLowerMargin(0D);
    localNumberAxis1.setUpperMargin(0D);
    NumberAxis localNumberAxis2 = new NumberAxis("Y");
    localNumberAxis2.setAutoRangeIncludesZero(false);
    localNumberAxis2.setInverted(true);
    localNumberAxis2.setLowerMargin(0D);
    localNumberAxis2.setUpperMargin(0D);
    localNumberAxis2.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    XYBlockRenderer localXYBlockRenderer = new XYBlockRenderer();
    LookupPaintScale localLookupPaintScale = new LookupPaintScale(0.5D, 3.5D, Color.black);
    localLookupPaintScale.add(0.5D, Color.green);
    localLookupPaintScale.add(1.5D, Color.orange);
    localLookupPaintScale.add(2.5D, Color.red);
    localXYBlockRenderer.setPaintScale(localLookupPaintScale);
    XYPlot localXYPlot = new XYPlot(paramXYZDataset, localNumberAxis1, localNumberAxis2, localXYBlockRenderer);
    localXYPlot.setBackgroundPaint(Color.lightGray);
    localXYPlot.setDomainGridlinePaint(Color.white);
    localXYPlot.setRangeGridlinePaint(Color.white);
    localXYPlot.setForegroundAlpha(0.6600000262260437F);
    localXYPlot.setAxisOffset(new RectangleInsets(5.0D, 5.0D, 5.0D, 5.0D));
    JFreeChart localJFreeChart = new JFreeChart("XYBlockChartDemo3", localXYPlot);
    localJFreeChart.removeLegend();
    SymbolAxis localSymbolAxis = new SymbolAxis(null, new String[] { "", "OK", "Uncertain", "Bad" });
    localSymbolAxis.setRange(0.5D, 3.5D);
    localSymbolAxis.setPlot(new PiePlot());
    localSymbolAxis.setGridBandsVisible(false);
    PaintScaleLegend localPaintScaleLegend = new PaintScaleLegend(localLookupPaintScale, localSymbolAxis);
    localPaintScaleLegend.setAxisOffset(5.0D);
    localPaintScaleLegend.setPosition(RectangleEdge.BOTTOM);
    localPaintScaleLegend.setMargin(new RectangleInsets(5.0D, 5.0D, 5.0D, 5.0D));
    localJFreeChart.addSubtitle(localPaintScaleLegend);
    ChartUtilities.applyCurrentTheme(localJFreeChart);
    return localJFreeChart;
  }

  private static void setValue(double[][] paramArrayOfDouble, int paramInt1, int paramInt2, double paramDouble)
  {
    paramArrayOfDouble[0][((paramInt2 - 8) * 60 + paramInt1)] = paramInt1;
    paramArrayOfDouble[1][((paramInt2 - 8) * 60 + paramInt1)] = paramInt2;
    paramArrayOfDouble[2][((paramInt2 - 8) * 60 + paramInt1)] = paramDouble;
  }

  private static XYZDataset createDataset()
  {
    int j;
    double[] arrayOfDouble1 = new double[840];
    double[] arrayOfDouble2 = new double[840];
    double[] arrayOfDouble3 = new double[840];
    [D[] arrayOf[D = { arrayOfDouble1, arrayOfDouble2, arrayOfDouble3 };
    for (int i = 0; i < 60; ++i)
      for (j = 8; j < 22; ++j)
        setValue(arrayOf[D, i, j, 0D);
    for (i = 8; i < 12; ++i)
      for (j = 13; j < 48; ++j)
        setValue(arrayOf[D, j, i, 1D);
    for (i = 12; i < 20; ++i)
      for (j = 23; j < 43; ++j)
        setValue(arrayOf[D, j, i, 1D);
    setValue(arrayOf[D, 2, 20, 2.0D);
    setValue(arrayOf[D, 5, 20, 3.0D);
    setValue(arrayOf[D, 6, 20, 3.0D);
    setValue(arrayOf[D, 7, 20, 3.0D);
    setValue(arrayOf[D, 8, 20, 3.0D);
    setValue(arrayOf[D, 9, 20, 3.0D);
    setValue(arrayOf[D, 11, 20, 3.0D);
    setValue(arrayOf[D, 17, 20, 2.0D);
    setValue(arrayOf[D, 18, 20, 2.0D);
    setValue(arrayOf[D, 19, 20, 2.0D);
    setValue(arrayOf[D, 20, 20, 2.0D);
    setValue(arrayOf[D, 22, 20, 2.0D);
    setValue(arrayOf[D, 25, 20, 2.0D);
    setValue(arrayOf[D, 28, 20, 2.0D);
    setValue(arrayOf[D, 35, 20, 2.0D);
    for (i = 40; i < 60; ++i)
      setValue(arrayOf[D, i, 20, 3.0D);
    for (i = 23; i < 43; ++i)
      setValue(arrayOf[D, i, 21, 1D);
    DefaultXYZDataset localDefaultXYZDataset = new DefaultXYZDataset();
    localDefaultXYZDataset.addSeries("Series 1", arrayOf[D);
    return localDefaultXYZDataset;
  }

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

  public static void main(String[] paramArrayOfString)
  {
    XYBlockChartDemo3 localXYBlockChartDemo3 = new XYBlockChartDemo3("Block Chart Demo 3");
    localXYBlockChartDemo3.pack();
    RefineryUtilities.centerFrameOnScreen(localXYBlockChartDemo3);
    localXYBlockChartDemo3.setVisible(true);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -