📄 annotationdemo2.java
字号:
package demo;
import java.awt.Color;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.annotations.XYPointerAnnotation;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.block.BlockBorder;
import org.jfree.chart.block.BlockContainer;
import org.jfree.chart.block.BorderArrangement;
import org.jfree.chart.block.EmptyBlock;
import org.jfree.chart.labels.StandardXYToolTipGenerator;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.title.CompositeTitle;
import org.jfree.chart.title.LegendTitle;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.RefineryUtilities;
import org.jfree.ui.TextAnchor;
public class AnnotationDemo2 extends ApplicationFrame
{
public AnnotationDemo2(String paramString)
{
super(paramString);
setContentPane(createDemoPanel());
}
private static XYDataset createDataset1()
{
XYSeries localXYSeries = new XYSeries("Random Data 1");
localXYSeries.add(1D, 181.80000000000001D);
localXYSeries.add(2.0D, 167.30000000000001D);
localXYSeries.add(3.0D, 153.80000000000001D);
localXYSeries.add(4.0D, 167.59999999999999D);
localXYSeries.add(5.0D, 158.80000000000001D);
localXYSeries.add(6.0D, 148.30000000000001D);
localXYSeries.add(7.0D, 153.90000000000001D);
localXYSeries.add(8.0D, 142.69999999999999D);
localXYSeries.add(9.0D, 123.2D);
localXYSeries.add(10.0D, 131.80000000000001D);
localXYSeries.add(11.0D, 139.59999999999999D);
localXYSeries.add(12.0D, 142.90000000000001D);
localXYSeries.add(13.0D, 138.69999999999999D);
localXYSeries.add(14.0D, 137.30000000000001D);
localXYSeries.add(15.0D, 143.90000000000001D);
localXYSeries.add(16.0D, 139.80000000000001D);
localXYSeries.add(17.0D, 137.0D);
localXYSeries.add(18.0D, 132.80000000000001D);
XYSeriesCollection localXYSeriesCollection = new XYSeriesCollection();
localXYSeriesCollection.addSeries(localXYSeries);
return localXYSeriesCollection;
}
private static XYDataset createDataset2()
{
XYSeries localXYSeries = new XYSeries("Random Data 2");
localXYSeries.add(1D, 429.60000000000002D);
localXYSeries.add(2.0D, 323.19999999999999D);
localXYSeries.add(3.0D, 417.19999999999999D);
localXYSeries.add(4.0D, 624.10000000000002D);
localXYSeries.add(5.0D, 422.60000000000002D);
localXYSeries.add(6.0D, 619.20000000000005D);
localXYSeries.add(7.0D, 416.5D);
localXYSeries.add(8.0D, 512.70000000000005D);
localXYSeries.add(9.0D, 501.5D);
localXYSeries.add(10.0D, 306.10000000000002D);
localXYSeries.add(11.0D, 410.30000000000001D);
localXYSeries.add(12.0D, 511.69999999999999D);
localXYSeries.add(13.0D, 611.0D);
localXYSeries.add(14.0D, 709.60000000000002D);
localXYSeries.add(15.0D, 613.20000000000005D);
localXYSeries.add(16.0D, 711.60000000000002D);
localXYSeries.add(17.0D, 708.79999999999995D);
localXYSeries.add(18.0D, 501.60000000000002D);
XYSeriesCollection localXYSeriesCollection = new XYSeriesCollection();
localXYSeriesCollection.addSeries(localXYSeries);
return localXYSeriesCollection;
}
private static JFreeChart createChart()
{
XYDataset localXYDataset = createDataset1();
JFreeChart localJFreeChart = ChartFactory.createXYLineChart("Annotation Demo 2", "Date", "Price Per Unit", localXYDataset, PlotOrientation.VERTICAL, false, true, false);
XYPlot localXYPlot = (XYPlot)localJFreeChart.getPlot();
NumberAxis localNumberAxis1 = (NumberAxis)localXYPlot.getRangeAxis();
localNumberAxis1.setAutoRangeIncludesZero(false);
NumberAxis localNumberAxis2 = new NumberAxis("Secondary");
localNumberAxis2.setAutoRangeIncludesZero(false);
localXYPlot.setRangeAxis(1, localNumberAxis2);
localXYPlot.setDataset(1, createDataset2());
localXYPlot.mapDatasetToRangeAxis(1, 1);
XYLineAndShapeRenderer localXYLineAndShapeRenderer1 = (XYLineAndShapeRenderer)localXYPlot.getRenderer();
localXYLineAndShapeRenderer1.setBaseToolTipGenerator(StandardXYToolTipGenerator.getTimeSeriesInstance());
localXYLineAndShapeRenderer1.setBaseShapesVisible(true);
localXYLineAndShapeRenderer1.setBaseShapesFilled(true);
XYPointerAnnotation localXYPointerAnnotation1 = new XYPointerAnnotation("Annotation 1 (2.0, 167.3)", 2.0D, 167.30000000000001D, -0.78539816339744828D);
localXYPointerAnnotation1.setTextAnchor(TextAnchor.BOTTOM_LEFT);
localXYPointerAnnotation1.setPaint(Color.red);
localXYPointerAnnotation1.setArrowPaint(Color.red);
localXYLineAndShapeRenderer1.addAnnotation(localXYPointerAnnotation1);
XYLineAndShapeRenderer localXYLineAndShapeRenderer2 = new XYLineAndShapeRenderer(true, true);
localXYLineAndShapeRenderer2.setSeriesPaint(0, Color.black);
localXYLineAndShapeRenderer1.setBaseToolTipGenerator(StandardXYToolTipGenerator.getTimeSeriesInstance());
XYPointerAnnotation localXYPointerAnnotation2 = new XYPointerAnnotation("Annotation 2 (15.0, 613.2)", 15.0D, 613.20000000000005D, 1.5707963267948966D);
localXYPointerAnnotation2.setTextAnchor(TextAnchor.TOP_CENTER);
localXYLineAndShapeRenderer2.addAnnotation(localXYPointerAnnotation2);
localXYPlot.setRenderer(1, localXYLineAndShapeRenderer2);
LegendTitle localLegendTitle1 = new LegendTitle(localXYLineAndShapeRenderer1);
LegendTitle localLegendTitle2 = new LegendTitle(localXYLineAndShapeRenderer2);
BlockContainer localBlockContainer = new BlockContainer(new BorderArrangement());
localBlockContainer.add(localLegendTitle1, RectangleEdge.LEFT);
localBlockContainer.add(localLegendTitle2, RectangleEdge.RIGHT);
localBlockContainer.add(new EmptyBlock(2000.0D, 0D));
CompositeTitle localCompositeTitle = new CompositeTitle(localBlockContainer);
localCompositeTitle.setFrame(new BlockBorder(Color.red));
localCompositeTitle.setBackgroundPaint(Color.yellow);
localCompositeTitle.setPosition(RectangleEdge.BOTTOM);
localJFreeChart.addSubtitle(localCompositeTitle);
ChartUtilities.applyCurrentTheme(localJFreeChart);
return localJFreeChart;
}
public static JPanel createDemoPanel()
{
JFreeChart localJFreeChart = createChart();
return new ChartPanel(localJFreeChart);
}
public static void main(String[] paramArrayOfString)
{
AnnotationDemo2 localAnnotationDemo2 = new AnnotationDemo2("JFreeChart: AnnotationDemo2.java");
localAnnotationDemo2.pack();
RefineryUtilities.centerFrameOnScreen(localAnnotationDemo2);
localAnnotationDemo2.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -