ImFaith
Messages postés57Date d'inscriptiondimanche 6 décembre 2009StatutMembreDernière intervention17 mars 2015
-
4 juin 2011 à 21:22
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 2012
-
5 juin 2011 à 09:08
Salut tout le monde;
.J'ai rencontré un problème dans l'affichage. JE veux que l'axe des "X" affiche les numéro pas par pas,çàd. 1,2,3,4,5... .Mais pour mon code si le nombre des numéros est grand il les affiche par virgule.
voici le code :
package Interfaces;
import java.awt.Color;
import java.awt.Font;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.annotations.XYTextAnnotation;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CombinedDomainXYPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
import org.jfree.chart.renderer.xy.XYItemRenderer;
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.RefineryUtilities;
public class CombinedXYPlotDemo4 extends ApplicationFrame {
public CombinedXYPlotDemo4(final String title) {
super(title);
final JFreeChart chart = createCombinedChart();
final ChartPanel panel = new ChartPanel(chart, true, true, true, true, true);
panel.setPreferredSize(new java.awt.Dimension(500, 270));
setContentPane(panel);
}
private JFreeChart createCombinedChart() {
// create subplot 1...
final XYDataset data1 = createDataset1();
final XYItemRenderer renderer1 = new StandardXYItemRenderer();
final NumberAxis rangeAxis1 = new NumberAxis("Efficacité");
rangeAxis1.setLabelPaint(Color.red);
rangeAxis1.setTickLabelPaint(Color.red);
rangeAxis1.setTickLabelFont(new Font("Vijaya", Font.PLAIN, 16));
rangeAxis1.setLabelFont(new Font("Vijaya", Font.PLAIN, 28));
final XYPlot subplot1 = new XYPlot(data1, null, rangeAxis1, renderer1);
subplot1.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
// add secondary axis
subplot1.setDataset(1, createDataset2());
final NumberAxis axis2 = new NumberAxis("Temps de chiffrement");
axis2.setLabelPaint(Color.blue);
axis2.setTickLabelPaint(Color.blue);
axis2.setLabelFont(new Font("Vijaya", Font.PLAIN, 28));
axis2.setTickLabelFont(new Font("Vijaya", Font.PLAIN, 16));
axis2.setAutoRangeIncludesZero(false);
subplot1.setRangeAxis(1, axis2);
subplot1.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
subplot1.setRenderer(1, new StandardXYItemRenderer());
subplot1.mapDatasetToRangeAxis(1, 1);
final XYTextAnnotation annotation = new XYTextAnnotation("Hello!", 50.0, 10000.0);
annotation.setFont(new Font("Vijaya", Font.PLAIN, 9));
annotation.setRotationAngle(Math.PI / 4.0);
subplot1.addAnnotation(annotation);
// parent plot...
final CombinedDomainXYPlot plot = new CombinedDomainXYPlot(new NumberAxis("Numéro Test"));
plot.setGap(10.0);
// add the subplots...
plot.add(subplot1, 1);
plot.setOrientation(PlotOrientation.VERTICAL);
return new JFreeChart("Efficacité/Temps chiffrement"+"\n"+" par rapport au nombre de fourmis et de générations",
new Font("Vijaya", Font.PLAIN, 28) ,plot, true);
}
private XYDataset createDataset1() {
// valeur d'efficacité
final XYSeries series1 = new XYSeries("Efficacité");
series1.add(1,1546);
series1.add(2,1888.8);
series1.add(3,1922.4);
series1.add(4,1989.6);
series1.add(5,2043.4);
series1.add(6,2069.6);
series1.add(7,2087.8);
series1.add(8,2114.4);
series1.add(9,2138.2);
series1.add(10,2150.0);
series1.add(11,2137.2);
series1.add(12,2142.4);
series1.add(13,2144.8);
series1.add(14,2164.6);
series1.add(15,2172.0);
series1.add(16,2109.6);
series1.add(17,2152.0);
series1.add(18,2154.2);
series1.add(19,2168.418);
series1.add(20,2176.8);
series1.add(21,2175.2);
series1.add(22,2179.2);
series1.add(23,2178.0);
series1.add(24,2172.2);
series1.add(25,2176.6);
series1.add(26,2153.2);
series1.add(27,2173.2);
series1.add(28,2180.0);
series1.add(29,2178.0);
series1.add(30,2182.4);
series1.add(31,2181.4);
series1.add(32,2181.6);
series1.add(33,2186.6);
series1.add(34,2184.8);
series1.add(35,2187.0);
series1.add(36,2145.4);
series1.add(37,2182.4);
series1.add(38,2182.0);
series1.add(39,2187.8);
series1.add(40,2186.8);
series1.add(41,2189.6);
series1.add(42,2188.6);
series1.add(43,2190.4);
series1.add(44,2189.0);
series1.add(45,2189.0);
series1.add(46,2173.0);
series1.add(47,2187.2);
series1.add(48,2188.8);
series1.add(49,2189.8);
series1.add(50,2190.0);
series1.add(51,2191.0);
series1.add(52,2190.6);
series1.add(53,2191.0);
series1.add(54,2190.6);
series1.add(55,2190.6);
final XYSeriesCollection collection = new XYSeriesCollection();
collection.addSeries(series1);
return collection;
}
private XYDataset createDataset2() {
//temps de chiffrement
final XYSeries series1b = new XYSeries("Temps");
series1b.add(1,117.1);
series1b.add(2,199.7);
series1b.add(3,276.2);
series1b.add(4,355.6);
series1b.add(5,435.4);
series1b.add(6,267);
series1b.add(7,504);
series1b.add(8,2756.6);
series1b.add(9,982.6);
series1b.add(10,1245.6);
series1b.add(11,1499);
series1b.add(12,1736.2);
series1b.add(13,1967.0);
series1b.add(14,2230.7);
series1b.add(15,2480.4);
series1b.add(16,495.9);
series1b.add(17,914.2);
series1b.add(18,1333.8);
series1b.add(19,1821.9);
series1b.add(20,2216.2);
series1b.add(21,2662.9);
series1b.add(22,3101.4);
series1b.add(23,3539.7);
series1b.add(24,3957.8);
series1b.add(25,4404.0);
series1b.add(26,655.2);
series1b.add(27,1301.1);
series1b.add(28,1937.5);
series1b.add(29,2563.1);
series1b.add(30,3207.4);
series1b.add(31,3842.3);
series1b.add(32,4506.9);
series1b.add(33,5187.1);
series1b.add(34,5822.0);
series1b.add(35,6444.3);
series1b.add(36,926.1);
series1b.add(37,1743.3);
series1b.add(38,2522.5);
series1b.add(39,3378.9);
series1b.add(40,4227.6);
series1b.add(41,5040.4);
series1b.add(42,5909.4);
series1b.add(43,6703.4);
series1b.add(44,7548.8);
series1b.add(45,8405.3);
series1b.add(46,1040.5);
series1b.add(47,2093.5);
series1b.add(48,3126.2);
series1b.add(49,4169.9);
series1b.add(50,5202.6);
series1b.add(51,5427.3);
series1b.add(52,7290.0);
series1b.add(53,8327.3);
series1b.add(54,9517.7);
series1b.add(55,10468.0);
final XYSeriesCollection collection = new XYSeriesCollection();
collection.addSeries(series1b);
return collection;
}
public static void main(final String[] args) {
final CombinedXYPlotDemo4 demo = new CombinedXYPlotDemo4("Efficacité/temps chiffrement");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
j'ai trop essayer de changer l'affichage mais hélas...!merci d'avance.
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 5 juin 2011 à 09:08
salut,
je ne connai pas par coeur tout les comportement de JFreechart ;o), cependant je me rapelle ;o) que ses classs sont asser complete en terme de model et de rendu... et respectes à priori le model MVC ;o)
donc dans le meilleur des cas, il existe un renderer ... si il ne te convien pas surcharge le pour et refait toi meme la methode de rendu ... ;o) avec les sources d'origine ca doit pas etre bien dur ...