1 7 8 package org.jfree.experimental.chart.demo; 9 10 import java.awt.Color ; 11 12 import javax.swing.JPanel ; 13 14 import org.jfree.chart.ChartPanel; 15 import org.jfree.chart.JFreeChart; 16 import org.jfree.chart.axis.NumberAxis; 17 import org.jfree.chart.plot.XYPlot; 18 import org.jfree.data.DomainOrder; 19 import org.jfree.data.general.DatasetChangeListener; 20 import org.jfree.data.general.DatasetGroup; 21 import org.jfree.data.xy.XYZDataset; 22 import org.jfree.experimental.chart.renderer.GrayPaintScale; 23 import org.jfree.experimental.chart.renderer.PaintScale; 24 import org.jfree.experimental.chart.renderer.xy.XYBlockRenderer; 25 import org.jfree.ui.ApplicationFrame; 26 import org.jfree.ui.RefineryUtilities; 27 28 34 public class XYBlockChartDemo1 extends ApplicationFrame { 35 36 41 public XYBlockChartDemo1(String title) { 42 super(title); 43 JPanel chartPanel = createDemoPanel(); 44 chartPanel.setPreferredSize(new java.awt.Dimension (500, 270)); 45 setContentPane(chartPanel); 46 } 47 48 55 private static JFreeChart createChart(XYZDataset dataset) { 56 NumberAxis xAxis = new NumberAxis("X"); 57 xAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); 58 xAxis.setLowerMargin(0.0); 59 xAxis.setUpperMargin(0.0); 60 NumberAxis yAxis = new NumberAxis("Y"); 61 yAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); 62 yAxis.setLowerMargin(0.0); 63 yAxis.setUpperMargin(0.0); 64 XYBlockRenderer renderer = new XYBlockRenderer(); 65 PaintScale scale = new GrayPaintScale(-2.0, 1.0); 66 renderer.setPaintScale(scale); 67 XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer); 68 plot.setBackgroundPaint(Color.lightGray); 69 plot.setDomainGridlinesVisible(false); 70 plot.setRangeGridlinePaint(Color.white); 71 JFreeChart chart = new JFreeChart("XYBlockChartDemo1", plot); 72 chart.removeLegend(); 73 chart.setBackgroundPaint(Color.white); 74 return chart; 75 } 76 77 80 private static XYZDataset createDataset() { 81 return new XYZDataset() { 82 public int getSeriesCount() { 83 return 1; 84 } 85 public int getItemCount(int series) { 86 return 10000; 87 } 88 public Number getX(int series, int item) { 89 return new Double (getXValue(series, item)); 90 } 91 public double getXValue(int series, int item) { 92 return item / 100 - 50; 93 } 94 public Number getY(int series, int item) { 95 return new Double (getYValue(series, item)); 96 } 97 public double getYValue(int series, int item) { 98 return item - (item / 100) * 100 - 50; 99 } 100 public Number getZ(int series, int item) { 101 return new Double (getZValue(series, item)); 102 } 103 public double getZValue(int series, int item) { 104 double x = getXValue(series, item); 105 double y = getYValue(series, item); 106 return Math.sin(Math.sqrt(x * x + y * y) / 5.0); 107 } 108 public void addChangeListener(DatasetChangeListener listener) { 109 } 111 public void removeChangeListener(DatasetChangeListener listener) { 112 } 114 public DatasetGroup getGroup() { 115 return null; 116 } 117 public void setGroup(DatasetGroup group) { 118 } 120 public Comparable getSeriesKey(int series) { 121 return "sin(sqrt(x + y))"; 122 } 123 public int indexOf(Comparable seriesKey) { 124 return 0; 125 } 126 public DomainOrder getDomainOrder() { 127 return DomainOrder.ASCENDING; 128 } 129 }; 130 } 131 132 137 public static JPanel createDemoPanel() { 138 return new ChartPanel(createChart(createDataset())); 139 } 140 141 146 public static void main(String [] args) { 147 XYBlockChartDemo1 demo = new XYBlockChartDemo1("Block Chart Demo"); 148 demo.pack(); 149 RefineryUtilities.centerFrameOnScreen(demo); 150 demo.setVisible(true); 151 } 152 153 } 154 | Popular Tags |