1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | import java.awt.*;
import javax.swing.JFrame;
import lt.monarch.chart.chart2D.*;
import lt.monarch.chart.chart2D.axis.*;
import lt.monarch.chart.chart2D.series.*;
import lt.monarch.chart.engine.ChartObject;
import lt.monarch.chart.mapper.MathAxisMapper;
import lt.monarch.chart.marker.TextMarker;
import lt.monarch.chart.models.ChartDataModel;
import lt.monarch.chart.style.enums.*;
import lt.monarch.chart.swing.JChartPanel;
import lt.monarch.chart.view.LabeledChart;
public class MarkerRangeDemo extends JFrame
{
private transient JChartPanel m_chartPanel;
public MarkerRangeDemo ()
{
initChart();
add(m_chartPanel);
}
protected void initChart()
{
/*
* Creating the mapper
*/
MathAxisMapper yMapper = new MathAxisMapper();
MathAxisMapper xMapper = new MathAxisMapper();
yMapper.setRange(0, 0.5);
xMapper.setRange(0, 10);
/*
* Creating the axis
*/
Axis2DX axisX = new Axis2DX(xMapper);
axisX.setScrollable(true);
Axis2DY axisY = new Axis2DY(yMapper);
axisY.setScrollable(true);
axisX.setTitle("x");
axisY.setTitle("y");
/*
* Creating the grid
*/
Grid grid = new Grid(xMapper, yMapper);
grid.setPaintMode(PaintMode.GRADIENT_PAINT);
grid.getPaintStyle().getGradientStyle().setColors(new Color(86, 175, 50, 40), new Color(86, 175, 50, 10));
/*
* Creating the data
*/
/*
* Creating and setting series
*/
ChartDataModel model = new ChartDataModel();
model.add(new Object[] { 0d, 0d });
model.add(new Object[] { 1.667, 0.3 });
model.add(new Object[] { 3.33, 0.39 });
model.add(new Object[] { 5d, 0.33 });
model.add(new Object[] { 6.667, 0.25 });
model.add(new Object[] { 8.33, 0.09 });
model.add(new Object[] { 10d, 0.01 });
LineSeries series = new LineSeries(model, xMapper, yMapper);
series.getPaintStyle().setForeground(new Color(86, 175, 50));
series.getPaintStyle().setStroke(new BasicStroke(3));
series.setStrategy(LineStrategies.SPLINE_STRATEGY);
/*
* Creating marker range
*/
VerticalMarkerRange range = new VerticalMarkerRange(axisX);
range.setRange(2.095, 9.236);
range.getPaintStyle().setForeground(new Color(251, 178, 47));
range.getPaintStyle().setBackground(Color.LIGHT_GRAY);
range.getPaintStyle().setStroke(new BasicStroke(3));
range.setLabel("90%");
range.setLabelPosition(0.5, Alignment.CENTER, Orientation.HORIZONTAL);
/*
* Creating chart
*/
Chart2D chart = new Chart2D();
chart.setObjects(new ChartObject[] { grid, series, range});
chart.setXAxis(axisX);
chart.setYAxis(axisY);
/*
* Creating and setting chart title
*/
LabeledChart m_chart = new LabeledChart(chart);
m_chart.setTitle("Chi Square Distribution (5 degrees of freedom)");
m_chartPanel = new JChartPanel(m_chart);
}
public static void main(String[] args)
{
MarkerRangeDemo frame = new MarkerRangeDemo();
frame.setSize(new Dimension(600, 400));
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setTitle("Distribution of Intervals");
frame.setVisible(true);
}
} |