java jMathPlot如何设置轴网格增量

时间:2013-10-30 17:24:48

标签: java

如何在JMathPlot中设置各种各样的东西?

Plot3DPanel plot = new Plot3DPanel("SOUTH");
plot.setAxisLabels("Periods", "Confidence Level", "VaR");
plot.plotCanvas.setBackground(Color.DARK_GRAY);
plot.getAxis(0).setColor(Color.WHITE);
plot.getAxis(1).setColor(Color.WHITE);
plot.getAxis(2).setColor(Color.WHITE);
plot.getAxis(0).setLabelFont(new Font("Courier", Font.BOLD, 20));
plot.getAxis(1).setLabelFont(new Font("Courier", Font.BOLD, 20));
plot.getAxis(2).setLabelFont(new Font("Courier", Font.BOLD, 20));

我在任何轴上的数据都是1.0到10.0。如何强制网格(轴刻度)有9个步骤,以便在轴上得到整数值?

2 个答案:

答案 0 :(得分:1)

我到目前为止找到的最好的是设置固定界限:

示例:

// set the X axis to be between 0 and 10
plot.setFixedBounds(0, 0, 10);

// set the y axis to be between 0 and 20
plot.setFixedBounds(1, 0, 20);

setFixedBounds (int axe, double min, double max)

出于某种原因,这导致网格正确地为我排队。

答案 1 :(得分:0)

此示例对于固定缩放和动态更新非常有用:

public  class MyPlot{

static public Plot2DPanel plot1;
static JFrame frame=new JFrame("a plot1 panel");

public MyPlot(){

frame.setSize(400,400);
frame.setResizable(true);
frame.setAlwaysOnTop(true);
frame.setLocation(150,150);
frame.setVisible(true);

plot1 = new Plot2DPanel();

}

// the show Method is to be used for x[] and y[] arrays loading.
public  void show(double [] x,double []y){

plot1.removeAllPlots();
plot1.addLinePlot("my plot",x,y);
plot1.setFixedBounds(0, 0, 1000);// X data range is [0,1000]
plot1.setFixedBounds(1, 0, 1000);// Y data range is [0,1000]
frame.setContentPane(plot1);
frame.repaint();
frame.setVisible(true);

}

但是代码适用于Oracle java 6和7但不适用于8.

frame.setContentPane(plot1)

在java 8的情况下给出错误,至今仍然不知道,如何解决这个兼容性问题。