Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / Jfree chart: внешний цикл мертвый. / 10 сообщений из 10, страница 1 из 1
02.10.2019, 10:34
    #39870389
Peshang
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jfree chart: внешний цикл мертвый.
всем привет! я пытаюсь построить график через jfree chart, но мой внешний цикл не работает. и вообще график строится не правильно. помогите пожалуйста исправить код.
внес из кода только то, считал нужным.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
  private static XYDataset createDataset() {
        XYSeriesCollection tsc = new XYSeriesCollection();
        double [] psi=Psi();  
        for(int D=5;D<10;D++) {
        XYSeries series = new XYSeries("D = "+D);
            for ( F=F_Starting_Value, j=0;F<F_End_Value && j<MatrixSize;
            	F+=((double)Math.round(F_Step*1000d)/1000d), j++)
            	{
            	Zclassic_D1 [j]=((double)Math.round(F*1000d)/1000d)/((D-1)*
        	    (1-((double)Math.round(F*1000d)/1000d))+1);
        		ZFEC_D1 [j]=(A*psi[j])/( (1-psi[j])*(D-1)+ B);
        		Z_D1[j]= ((double)Math.round(ZFEC_D1[j]*1000000000d)/1000000000d)-
        		((double)Math.round(Zclassic_D1[j]*1000000000d)/1000000000d);
        		
        		if (Z_D1[j]>0)
        			{
        			series.add( Z_D1[j],D);
        			}
            	}
            	tsc.addSeries(series);
        }
        return tsc;
    }

    private static JFreeChart createChart(final XYDataset dataset) {
        JFreeChart chart = ChartFactory.createTimeSeriesChart(
            "Test", "D", "Z", dataset, true, true, false);
        return chart;
    }
...
Рейтинг: 0 / 0
02.10.2019, 12:08
    #39870443
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jfree chart: внешний цикл мертвый.
Peshang,

Я бы на вашем месте начал отсюда https://www.oracle.com/technetwork/java/codeconventions-150003.pdf
+ Код приведен не полностью, не понятно, что такое F и MatrixSize.
...
Рейтинг: 0 / 0
02.10.2019, 12:33
    #39870469
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jfree chart: внешний цикл мертвый.
Peshangвсем привет! я пытаюсь построить график через jfree chart, но мой внешний цикл не работает. и вообще график строится не правильно. помогите пожалуйста исправить код.
внес из кода только то, считал нужным.
Почему ты решил что внешний цикл не работает? Нужно какое-то доказательство. Скрин с дебаггером например.

Видишь-ли. Ты исходник привел не полный. А огрызок. Поэтому чтобы участники сымитировали твою
"нерабочесть" им надо потратить какие-то усилия. Поэтому будь любезен постарайся добавить какие-то
точки логгирования чтобы определить докудова ты доходишь.

Код: java
1.
2.
3.
 for(int D=5;D<10;D++) {
        System.out.println(":: Checkpoint #1");
        XYSeries series = new XYSeries("D = "+D);
...
Рейтинг: 0 / 0
02.10.2019, 15:27
    #39870609
Peshang
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jfree chart: внешний цикл мертвый.
Спасибо за быстрый ответ! добавлю полный код, я точно знаю выходной график не правильный.
я очень плохо разбираюсь в программировании, просто нужно исследовать полученные графики.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

public class ChartPanelTest {
	
    public static int A=1, B=A+1;
  //Fr=1
  public static double F; 
  public static double F_Starting_Value=(double)Math.round(0.009   *1000d)/1000d;
  public static double F_End_Value=((double)Math.round(1.0   *10d)/10d);
  public static double F_Step=((double)Math.round(0.001      *1000d)/1000d);
  public static int MatrixSize=1000;
  public static double [] Zclassic_D1 = new double [MatrixSize];
  public static double [] Zclassic_D2 = new double [MatrixSize];
  public static double [] Zclassic_D3 = new double [MatrixSize];
  public static double [] ZFEC_D1 = new double [MatrixSize];
  public static double [] ZFEC_D2 = new double [MatrixSize];
  public static double [] ZFEC_D3 = new double [MatrixSize];
  public static double [] Z_D1 = new double [MatrixSize];
  public static double [] Z_D2 = new double [MatrixSize];
  public static double [] Z_D3 = new double [MatrixSize];
//Расчет Фактериалов B и A/
public static int Facterial(int n) 
{
	int temp=1, fact=1;
	for(int i=n; i>0;i--) {
	temp=i*fact;;
	fact=temp;
	}
	
	return fact;
}
//Расчет Пси
public static double []Psi()
{
	double []temp = new double [MatrixSize]; 
	double [] p = new double [MatrixSize];
	int j;
	//==========Изменение точности=============
	 for ( F=((double)Math.round(F_Starting_Value*1000d)/1000d),j=0;
			 F < ((double)Math.round(F_End_Value*1000d)/1000d) && j<MatrixSize;
			 F+=((double)Math.round(F_Step*1000d)/1000d), j++)
	{
		for (int i= A; i<= B; i++) 
		{
		temp[j]=0;
			temp [j]= Math.pow(((double)Math.round(F*1000d)/1000d), i)
				*Math.pow(1-((double)Math.round(F*1000d)/1000d),B-i)
				*((Facterial(B))/(Facterial(B-i)*Facterial(i)));
		
				p[j] += ((double)Math.round(temp [j]*1000000000d)/1000000000d);
		}
	}
	return p;
}
//======================================End of Calculations==========================
//Charts creation
    private static XYDataset createDataset() {
        XYSeriesCollection tsc = new XYSeriesCollection();
        double [] psi=Psi();  
        int j;
        for(int D=5;D<10;D++) {
        XYSeries series = new XYSeries("D = "+D);
            for ( F=F_Starting_Value, j=0;F<F_End_Value && j<MatrixSize;
            	F+=((double)Math.round(F_Step*1000d)/1000d), j++)
            	{
            	Zclassic_D1 [j]=((double)Math.round(F*1000d)/1000d)/((D-1)*
        	    (1-((double)Math.round(F*1000d)/1000d))+1);
        		ZFEC_D1 [j]=(A*psi[j])/( (1-psi[j])*(D-1)+ B);
        		Z_D1[j]= ((double)Math.round(ZFEC_D1[j]*1000000000d)/1000000000d)-
        		((double)Math.round(Zclassic_D1[j]*1000000000d)/1000000000d);
        		
        		if (Z_D1[j]>0)
        			{
        			series.add( Z_D1[j],D);
        			}
            	}
            	tsc.addSeries(series);
        }
        return tsc;
    }

    private static JFreeChart createChart(final XYDataset dataset) {
        JFreeChart chart = ChartFactory.createTimeSeriesChart(
            "Test", "D", "Z", dataset, true, true, false);
        return chart;
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame f = new JFrame();
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                XYDataset dataset = createDataset();
                JFreeChart chart = createChart(dataset);
                final XYPlot plot = chart.getXYPlot();
                ChartPanel chartPanel = new ChartPanel(chart) {
                    @Override
                    public Dimension getPreferredSize() {
                        return new Dimension(450, 450);
                    }
                };
                f.add(chartPanel);
                JPanel p = new JPanel();
                p.add(new JButton(new AbstractAction("New") {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        plot.setDataset(createDataset());
                    }
                }));
                f.add(p, BorderLayout.SOUTH);
                f.pack();
                f.setLocationRelativeTo(null);
                f.setVisible(true);
            }
        });
    }
}
...
Рейтинг: 0 / 0
02.10.2019, 15:29
    #39870610
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jfree chart: внешний цикл мертвый.
Капец у тебя code-style. Паскалист што-ли...
...
Рейтинг: 0 / 0
02.10.2019, 15:41
    #39870617
Peshang
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jfree chart: внешний цикл мертвый.
mayton, проверил все циклы. работают, но график не правильный. пока ищу ошибку в графике!
...
Рейтинг: 0 / 0
02.10.2019, 15:43
    #39870621
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jfree chart: внешний цикл мертвый.
Извини. У нас нет критерия правильности для твоих графиков. Так уж вышло.
...
Рейтинг: 0 / 0
02.10.2019, 15:50
    #39870628
Peshang
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jfree chart: внешний цикл мертвый.
mayton, знаю все ужасно, я не программист, кажется проблема вот в чем
Код: java
1.
2.
JFreeChart chart = ChartFactory.createTimeSeriesChart(
            "Test", "D", "Z", dataset, true, true, false);

!! надо вместо Таймсерис поставить просто линию, но как не знаю, у меня данные не связаны со временем!
...
Рейтинг: 0 / 0
02.10.2019, 18:49
    #39870776
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jfree chart: внешний цикл мертвый.
...
Рейтинг: 0 / 0
03.10.2019, 17:03
    #39871254
Peshang
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jfree chart: внешний цикл мертвый.
Lelouch, Спасибо, разберусь!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Jfree chart: внешний цикл мертвый. / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]