Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JFreeChart-范围轴自动范围和don';不要从0开始_Java_Jfreechart - Fatal编程技术网

Java JFreeChart-范围轴自动范围和don';不要从0开始

Java JFreeChart-范围轴自动范围和don';不要从0开始,java,jfreechart,Java,Jfreechart,在JFreeChart中,如何要求RangeAxis自动“优化”自身 现在我有一堆数据要显示在25.00和27.00之间,但范围总是从0开始,这看起来不太好: 我尝试设置plot.getRangeAxis().setAutoRange(true),但它不起作用。当然,我可以计算我的最小值和最大值,然后我可以用setRange(最小值,最大值)设置它,但是有没有捆绑的函数可以做到这一点 复制: import org.jfree.chart.ChartPanel; import org.jfree

在JFreeChart中,如何要求RangeAxis自动“优化”自身

现在我有一堆数据要显示在25.00和27.00之间,但范围总是从0开始,这看起来不太好:

我尝试设置plot.getRangeAxis().setAutoRange(true),但它不起作用。当然,我可以计算我的最小值和最大值,然后我可以用setRange(最小值,最大值)设置它,但是有没有捆绑的函数可以做到这一点

复制:

import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

public class LineChart_AWT extends ApplicationFrame {

    public LineChart_AWT( String applicationTitle , String chartTitle ) {
          super(applicationTitle);
          JFreeChart lineChart = ChartFactory.createLineChart(
             chartTitle,
             "Dates","Temperature",
             createDataset(),
             PlotOrientation.VERTICAL,
             true,true,false);

          CategoryPlot plot = (CategoryPlot) lineChart.getPlot();
          //plot.getRangeAxis().setRange(25, 27);
          //plot.getRangeAxis().setAutoRange(true);

          ChartPanel chartPanel = new ChartPanel( lineChart );
          chartPanel.setPreferredSize( new java.awt.Dimension( 560 , 367 ) );
          setContentPane( chartPanel );
       }

       private DefaultCategoryDataset createDataset( ) {
          DefaultCategoryDataset dataset = new DefaultCategoryDataset( );

          dataset.addValue( 26.44,"Temperature","2019-08-18 00:00");
          dataset.addValue( 26.2,"Temperature","2019-08-18 01:00");
          dataset.addValue( 25.93,"Temperature","2019-08-18 02:00");
          dataset.addValue( 25.71,"Temperature","2019-08-18 03:00");
          dataset.addValue( 25.54,"Temperature","2019-08-18 04:00");
          dataset.addValue( 25.42,"Temperature","2019-08-18 05:00");
          dataset.addValue( 25.25,"Temperature","2019-08-18 06:00");
          dataset.addValue( 25.19,"Temperature","2019-08-18 07:00");
          dataset.addValue( 25.25,"Temperature","2019-08-18 08:00");
          dataset.addValue( 25.36,"Temperature","2019-08-18 09:00");
          dataset.addValue( 25.52,"Temperature","2019-08-18 10:00");
          dataset.addValue( 25.86,"Temperature","2019-08-18 11:00");
          dataset.addValue( 26.51,"Temperature","2019-08-18 12:00");
          dataset.addValue( 26.82,"Temperature","2019-08-18 13:00");


          return dataset;
       }

       public static void main( String[ ] args ) {
          LineChart_AWT chart = new LineChart_AWT(
             "X-axis demo" ,
             "Y-range is wrong");

          chart.pack( );
          RefineryUtilities.centerFrameOnScreen( chart );
          chart.setVisible( true );
       }
    }

此外,必须指定显示的间隔中是否应包含零值:

plot.getRangeAxis().setAutoRange(true);                            // uncomment
((NumberAxis)plot.getRangeAxis()).setAutoRangeIncludesZero(false); // add
结果:

当您使用时,它能工作吗?