我需要:
1.)移动原点并旋转坐标平面,使x值向右前进,y值从新原点向上进展(需要在内部的蓝色矩形的左下角)代码如下).这将使我能够在下面的代码中绘制x,y坐标对的点.
2.)绘制数据图的y轴上的抽动标记的旋转标签.
下面的代码设置了这个问题.它有效,除了两个问题:
1.)数据点被绘制,左上角为原点,y值向下下降
2.)y轴上的标记标记未被绘制屏幕上
任何人都可以告诉我如何修复下面的代码,以便它修复这两个问题,并做上面第一段描述的内容?
代码在以下两个java文件中:
DataGUI.java
import java.awt.*;
import java.util.ArrayList;
import javax.swing.*;
class DataGUI extends JFrame{
DataGUI() {
super("X,Y Plot");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setPreferredSize(new Dimension(800, 400));
this.pack();
this.setSize(new Dimension(800, 600));
this.setLocationRelativeTo(null);
setLayout(new GridLayout());
ArrayList<Double> myDiffs = new ArrayList<Double>();
myDiffs.add(25.0);
myDiffs.add(9.0);
myDiffs.add(7.0);
myDiffs.add(16.0);
myDiffs.add(15.0);
myDiffs.add(6.0);
myDiffs.add(2.0);
myDiffs.add(8.0);
myDiffs.add(2.0);
myDiffs.add(27.0);
myDiffs.add(14.0);
myDiffs.add(12.0);
myDiffs.add(19.0);
myDiffs.add(10.0);
myDiffs.add(11.0);
myDiffs.add(8.0);
myDiffs.add(19.0);
myDiffs.add(2.0);
myDiffs.add(16.0);
myDiffs.add(5.0);
myDiffs.add(18.0);
myDiffs.add(23.0);
myDiffs.add(9.0);
myDiffs.add(4.0);
myDiffs.add(8.0);
myDiffs.add(9.0);
myDiffs.add(3.0);
myDiffs.add(3.0);
myDiffs.add(9.0);
myDiffs.add(13.0);
myDiffs.add(17.0);
myDiffs.add(7.0);
myDiffs.add(0.0);
myDiffs.add(2.0);
myDiffs.add(3.0);
myDiffs.add(33.0);
myDiffs.add(23.0);
myDiffs.add(26.0);
myDiffs.add(12.0);
myDiffs.add(12.0);
myDiffs.add(19.0); …Run Code Online (Sandbox Code Playgroud) 我正在制作一个显示背景计算结果的GUI.但在此之前,我想测试更改数据集.这是我的代码:
DefaultXYDataset dataset = new DefaultXYDataset();
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < periods; i++) {
series[0][i] = (double) i;
series[1][i] = 0;
}
dataset.addSeries("Series0", series);
for (int it = 0; it < 10; it++) {
series[1][random.nextInt(periods)] = random.nextInt(100) / 2;
double[][] d = new double[2][periods];
for (int i = 0; i < periods; i++) {
d[0][i] = series[0][i];
d[1][i] = series[1][i];
}
dataset.removeSeries("Series0");
dataset.addSeries("Series0", series);
// try {
// …Run Code Online (Sandbox Code Playgroud) 我有一个描述管道压力的数组的时间历史.因此,对于每个delta t,我在管道长度上有一系列压力值.我想用JFreeChart绘制沿管道长度的压力,并选择哪个delta t用滑块绘制,这样无论何时用户移动滑块,图形都会更新来自不同delta t的值.我也将瓷砖重置为管道最后部分的压力.会发生什么是标题是更新,意味着数据正在更新,但曲线保持不变.我已经在论坛上阅读了所有可能的主题并尝试了我能想到的一切,但它没有用!这是我的类的代码,它扩展了JPanel,其中方法jSlider1StateChanged听到滑块位置的变化,createChart在程序启动时创建一个新图表,dataSetGen(int ndt)根据滑块位置生成图形的新数据集:
public class MyMainPanel extends JPanel {
private JFreeChart jc;
private OutputPipe op;
private DefaultXYDataset ds;
private javax.swing.JFrame jFrame1;
private javax.swing.JSlider jSlider1;
private pipevisualizer.MyChartPanel pnlChartPanel;
private void jSlider1StateChanged(javax.swing.event.ChangeEvent evt) {
int ndt = ((JSlider) evt.
getSource()).
getValue();
System.out.println("Slider1: " + ((JSlider) evt.
getSource()).
getValue());
dataSetGen(ndt);
int a = 0;
jc.fireChartChanged();
}
private void dataSetGen(int ndt) {
ArrayList<OutputPipeDt> opDtArray = op.getOpLit();
OutputPipeDt opDt = opDtArray.get(ndt);
double[] H = opDt.getH();
double[] l = new double[H.length];
double[] p = …Run Code Online (Sandbox Code Playgroud)