如何使用XChart在Y轴上限制是相同的? [英] How to make limits on the Y axis be the same using XChart?

查看:214
本文介绍了如何使用XChart在Y轴上限制是相同的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图绘制一系列类似的函数。域是[0,1],范围总是在[-3,3]。



我想要Y轴上的限制是相同的图形。尝试设置系列y min和y max似乎不起作用。



有没有办法使每个图上的Y轴上的限制相同?

  import java.math.BigDecimal; 
import java.util。*;
import com.xeiam.xchart。*;
public class Bug {
static void plot(Chart chart,int n){
chart.setTitle(title);
chart.setXAxisTitle(X);
chart.setYAxisTitle(Y);
List< Number> x = new ArrayList< Number>();
List< Number> y = new ArrayList< Number>();
String seriesName = addOneSeries(chart,n,x,y);
}
private static String addOneSeries(Chart chart,int n,List< Number> x,List< Number> y){
for(int i = 0; i <= 10; i ++ ){
x.add(i / 10。);
y.add(i * n / 10。);
}
String seriesName =series+ n;
系列系列= chart.addSeries(seriesName,x,y);
series.xMin = BigDecimal.ZERO;
series.xMax = BigDecimal.ONE;
series.yMin = new BigDecimal(-5);
series.yMax = new BigDecimal(5);
return seriesName;
}
public static void main(String [] args){
for(int i = 0; i <4; i ++){
图表chart = ;
plot(chart,i);
new SwingWrapper(chart).displayChart();
}
}
}


解决方案>

现在可以使用图表上的最小值和最大值nofollow> XChart 。下面是一个OP的Bug类的重做,演示了这一点。在这一刻,由于它是一个全新的功能,你必须得到一个xchart-2.0.0-SNAPSHOT jar 此处,以便查看此功能。请随时寻求帮助或请求更多功能

  public class NoBug {

static void plot(Chart chart,int n){

chart.setChartTitle(title);
chart.setXAxisTitle(X);
chart.setYAxisTitle(Y);
List< Number> x = new ArrayList< Number>();
List< Number> y = new ArrayList< Number>();
String seriesName = addOneSeries(chart,n,x,y);
}

private static String addOneSeries(Chart chart,int n,List< Number> x,List< Number> y){

for(int i = 0; i <= 10; i ++){
x.add(i / 10);
y.add(i * n / 10.);
}
String seriesName =series+ n;
系列系列= chart.addSeries(seriesName,x,y);
chart.getStyleManager()。setxAxisMin(0);
chart.getStyleManager()。setxAxisMax(1);
chart.getStyleManager()。setyAxisMin(-5);
chart.getStyleManager()。setyAxisMax(5);
return seriesName;
}

public static void main(String [] args){

for(int i = 0; i <4; i ++){
Chart chart = new LineChart(700,500);
plot(chart,i);
new SwingWrapper(chart).displayChart();
}
}

}


I am trying to plot a series of functions that are similar. The domain is [0,1] and the range always in say [-3,3].

I want the limits on the Y axis to be the same for each graph. Trying to set the series y min and y max does not seem to work.

Is there a way to make the limits on the Y axis be the same on each graph?

import java.math.BigDecimal;
import java.util.*;
import com.xeiam.xchart.*;
public class Bug {
    static void plot(Chart chart,int n) {
        chart.setTitle("title");
        chart.setXAxisTitle("X");
        chart.setYAxisTitle("Y");
        List<Number> x=new ArrayList<Number>();
        List<Number> y=new ArrayList<Number>();
        String seriesName=addOneSeries(chart,n,x,y);
    }
    private static String addOneSeries(Chart chart,int n,List<Number> x,List<Number> y) {
        for(int i=0;i<=10;i++) {
            x.add(i/10.);
            y.add(i*n/10.);
        }
        String seriesName="series "+n;
        Series series=chart.addSeries(seriesName,x,y);
        series.xMin=BigDecimal.ZERO;
        series.xMax=BigDecimal.ONE;
        series.yMin=new BigDecimal(-5);
        series.yMax=new BigDecimal(5);
        return seriesName;
    }
    public static void main(String[] args) {
        for(int i=0;i<4;i++) {
            Chart chart=new Chart(700,500);
            plot(chart,i);
            new SwingWrapper(chart).displayChart();
        }
    }
}

解决方案

Setting the min and max values on a Chart is now possible with XChart. Below is a rework of OP's Bug class that demonstrates this. At this moment, since it's a brand new feature, you'll have to get an xchart-2.0.0-SNAPSHOT jar here in order to see this capability. Please feel free to ask for help or request more features!

public class NoBug {

  static void plot(Chart chart, int n) {

    chart.setChartTitle("title");
    chart.setXAxisTitle("X");
    chart.setYAxisTitle("Y");
    List<Number> x = new ArrayList<Number>();
    List<Number> y = new ArrayList<Number>();
    String seriesName = addOneSeries(chart, n, x, y);
  }

  private static String addOneSeries(Chart chart, int n, List<Number> x, List<Number> y) {

    for (int i = 0; i <= 10; i++) {
      x.add(i / 10.);
      y.add(i * n / 10.);
    }
    String seriesName = "series " + n;
    Series series = chart.addSeries(seriesName, x, y);
    chart.getStyleManager().setxAxisMin(0);
    chart.getStyleManager().setxAxisMax(1);
    chart.getStyleManager().setyAxisMin(-5);
    chart.getStyleManager().setyAxisMax(5);
    return seriesName;
  }

  public static void main(String[] args) {

    for (int i = 0; i < 4; i++) {
      Chart chart = new LineChart(700, 500);
      plot(chart, i);
      new SwingWrapper(chart).displayChart();
    }
  }

}

这篇关于如何使用XChart在Y轴上限制是相同的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆