Rango de ajuste para X, Y Axis-JfreeChart

Cualquier sugerencia sobre cómo establecer el rango para X-Axis y Y-Axis.

Mi rango “X-Axis” es de “0.00 a 1.00” con una diferencia de “0.05”. Me refiero a 0.00 0.05 0.10 0.15 ….. 0.90 0.95 1.00

Mi rango “Y-Axis” es de “0.0 a 1.0” con una diferencia de “0.1”. Me refiero a 0.0 0.1 0.2 0.3 0.4 ……… 0.9 1.0

Intenté hacer esto, pero no refleja el gráfico; No sé cómo aplicarlo a ChartFactory.createScatterPlot() .

 final NumberAxis domainAxis = new NumberAxis("X-Axis"); domainAxis.setRange(0.00,1.00); domainAxis.setTickUnit(new NumberTickUnit(0.1)); final NumberAxis rangeAxis = new NumberAxis("Y-Axis"); rangeAxis.setRange(0.0,1.0); rangeAxis.setTickUnit(new NumberTickUnit(0.05)); public JPanel createDemoPanel() { XYDataset dataset1 = samplexydataset2(); JFreeChart jfreechart = ChartFactory.createScatterPlot("Scatter Plot Demo", "X", "Y",dataset1, PlotOrientation.VERTICAL, true, true, false); } 

Cualquier ayuda con respecto a esto sería genial.

NumberAxis instancias nuevas de NumberAxis no están siendo utilizadas por el diagtwig; puede ser más fácil usar los existentes de fábrica.

enter image description here

 import java.awt.BorderLayout; import java.awt.Color; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.util.*; import javax.swing.AbstractAction; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import org.jfree.chart.*; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.NumberTickUnit; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.XYPlot; 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; /** * @see http://stackoverflow.com/questions/7231824 * @see http://stackoverflow.com/questions/7205742 * @see http://stackoverflow.com/questions/7208657 * @see http://stackoverflow.com/questions/7071057 */ public class ScatterAdd extends JFrame { private static final int N = 8; private static final String title = "Scatter Add Demo"; private static final Random rand = new Random(); private XYSeries added = new XYSeries("Added"); public ScatterAdd(String s) { super(s); final ChartPanel chartPanel = createDemoPanel(); this.add(chartPanel, BorderLayout.CENTER); JPanel control = new JPanel(); control.add(new JButton(new AbstractAction("Add") { @Override public void actionPerformed(ActionEvent e) { for (int i = 0; i < N; i++) { added.add(rand.nextDouble(), rand.nextDouble()); } } })); this.add(control, BorderLayout.SOUTH); } private ChartPanel createDemoPanel() { JFreeChart jfreechart = ChartFactory.createScatterPlot( title, "X", "Y", createSampleData(), PlotOrientation.VERTICAL, true, true, false); XYPlot xyPlot = (XYPlot) jfreechart.getPlot(); xyPlot.setDomainCrosshairVisible(true); xyPlot.setRangeCrosshairVisible(true); XYItemRenderer renderer = xyPlot.getRenderer(); renderer.setSeriesPaint(0, Color.blue); NumberAxis domain = (NumberAxis) xyPlot.getDomainAxis(); domain.setRange(0.00, 1.00); domain.setTickUnit(new NumberTickUnit(0.1)); domain.setVerticalTickLabels(true); NumberAxis range = (NumberAxis) xyPlot.getRangeAxis(); range.setRange(0.0, 1.0); range.setTickUnit(new NumberTickUnit(0.1)); return new ChartPanel(jfreechart); } private XYDataset createSampleData() { XYSeriesCollection xySeriesCollection = new XYSeriesCollection(); XYSeries series = new XYSeries("Random"); for (int i = 0; i < N * N; i++) { double x = rand.nextDouble(); double y = rand.nextDouble(); series.add(x, y); } xySeriesCollection.addSeries(series); xySeriesCollection.addSeries(added); return xySeriesCollection; } public static void main(String args[]) { EventQueue.invokeLater(new Runnable() { @Override public void run() { ScatterAdd demo = new ScatterAdd(title); demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); demo.pack(); demo.setLocationRelativeTo(null); demo.setVisible(true); } }); } } 

A menos que el código que pegó esté incompleto, parece que su problema es que no ha asociado los objetos NumberAxis que creó con su trazado.

En lugar de crear nuevos objetos NumberAxis manualmente, intente obtener los objetos ValueAxis predeterminados que están asociados con su trazado y luego modifique sus propiedades:

 XYPlot xyPlot = jfreechart.getXYPlot(); ValueAxis domainAxis = xyPlot.getDomainAxis(); ValueAxis rangeAxis = xyPlot.getRangeAxis(); domainAxis.setRange(0.0, 1.0); domainAxis.setTickUnit(new NumberTickUnit(0.1)); rangeAxis.setRange(0.0, 1.0); rangeAxis.setTickUnit(new NumberTickUnit(0.05));