powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Jfree chart: внешний цикл мертвый.
10 сообщений из 10, страница 1 из 1
Jfree chart: внешний цикл мертвый.
    #39870389
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.
  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
Jfree chart: внешний цикл мертвый.
    #39870443
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Peshang,

Я бы на вашем месте начал отсюда https://www.oracle.com/technetwork/java/codeconventions-150003.pdf
+ Код приведен не полностью, не понятно, что такое F и MatrixSize.
...
Рейтинг: 0 / 0
Jfree chart: внешний цикл мертвый.
    #39870469
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Jfree chart: внешний цикл мертвый.
    #39870609
Peshang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за быстрый ответ! добавлю полный код, я точно знаю выходной график не правильный.
я очень плохо разбираюсь в программировании, просто нужно исследовать полученные графики.
Код: 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
Jfree chart: внешний цикл мертвый.
    #39870610
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Капец у тебя code-style. Паскалист што-ли...
...
Рейтинг: 0 / 0
Jfree chart: внешний цикл мертвый.
    #39870617
Peshang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, проверил все циклы. работают, но график не правильный. пока ищу ошибку в графике!
...
Рейтинг: 0 / 0
Jfree chart: внешний цикл мертвый.
    #39870621
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извини. У нас нет критерия правильности для твоих графиков. Так уж вышло.
...
Рейтинг: 0 / 0
Jfree chart: внешний цикл мертвый.
    #39870628
Peshang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, знаю все ужасно, я не программист, кажется проблема вот в чем
Код: java
1.
2.
JFreeChart chart = ChartFactory.createTimeSeriesChart(
            "Test", "D", "Z", dataset, true, true, false);

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


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