1

如何在 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 个步骤,以便在轴上获得整数值?

4

2 回答 2

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)

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

于 2014-07-11T20:28:38.323 回答
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 的情况下给出错误,直到现在,仍然不知道如何解决这个兼容性问题。

于 2015-01-30T20:05:02.540 回答