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 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
| import com.sun.javafx.print.Units;
import java.awt.Color;
import java.awt.BasicStroke;
import java.awt.Point;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartMouseEvent;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.NumberTickUnit;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.event.ChartProgressEvent;
import org.jfree.chart.event.ChartProgressListener;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.ui.RectangleEdge;
public class XYLineChart_ESSAIE1 extends ApplicationFrame {
final XYSeriesCollection dataset = new XYSeriesCollection( );
final XYSeriesCollection dataset1 = new XYSeriesCollection( );
final XYSeries audiogramme = new XYSeries( "Audiogramme" );
final XYSeries firefox = new XYSeries( "Firefox" );
ChartPanel chartPanel;
final XYSeriesCollection Madataset = new XYSeriesCollection( );
private Object xCrosshair;
public XYLineChart_ESSAIE1( String applicationTitle, String chartTitle ) {
super(applicationTitle);
JFreeChart xylineChart = ChartFactory.createXYLineChart(
chartTitle ,
"Category" ,
"Score" ,
createDataset() ,
PlotOrientation.VERTICAL ,
true , true , false);
chartPanel = new ChartPanel( xylineChart );
chartPanel.setPreferredSize( new java.awt.Dimension( 560 , 367 ) );
final XYPlot plot = xylineChart.getXYPlot( );
//plot.setRenderer( renderer );
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer( );
renderer.setSeriesPaint( 0 , Color.RED );
renderer.setSeriesPaint( 1 , Color.GREEN );
renderer.setSeriesPaint( 2 , Color.YELLOW );
renderer.setSeriesStroke( 0 , new BasicStroke( 4.0f ) );
renderer.setSeriesStroke( 1 , new BasicStroke( 3.0f ) );
renderer.setSeriesStroke( 2 , new BasicStroke( 2.0f ) );
plot.setRenderer( renderer );
setContentPane( chartPanel );
xylineChart.addProgressListener(new ChartProgressListener() {
private Object firefox1;
@Override
public void chartProgress(ChartProgressEvent cpe) {
if(cpe.getType()==ChartProgressEvent.DRAWING_FINISHED){
System.out.println("Click event!");
XYPlot xyPlot2 = chartPanel.getChart().getXYPlot();
System.out.println(xyPlot2.getDomainCrosshairValue() + " "
+ xyPlot2.getRangeCrosshairValue());
}
}
});
int i=500; //valeur début
ValueAxis axisX = (ValueAxis) plot.getDomainAxis();
axisX.setAutoRange(false);
axisX.setRangeWithMargins(i,8000.0); //l'intervalle des X
NumberAxis xAxis = (NumberAxis) plot.getDomainAxis();
xAxis.setTickUnit(new NumberTickUnit(500)); //le pas, c'est ici que je veux que les choses changent
}
private XYDataset createDataset( ) {
firefox.add( 1.0 , 1.0 );
firefox.add( 2.0 , 4.0 );
firefox.add( 3.0 , 3.0 );
dataset.addSeries( firefox );
return dataset;
}
public static void main( String[ ] args ) {
XYLineChart_ESSAIE1 chart = new XYLineChart_ESSAIE1("Browser Usage Statistics",
"Which Browser are you using?");
chart.pack( );
RefineryUtilities.centerFrameOnScreen( chart );
chart.setVisible( true );
}
} |
Partager