2017-04-08 20 views
0

Jzy3d을 사용하여 배열에 저장된 데이터 요소 집합 (x, y, z)을 표시하는 플로터 클래스를 작성하려고합니다. 클래스에는 데이터 세트를 가져 와서 (자동으로) 3D 좌표계로 표시하는 plot() 메소드가 있어야합니다.
이 메서드는 시간 의존 루프에서 순차적으로 호출되어야합니다.Jzy3d (Java)를 사용한 단순 분산 형 플로터

지금까지 scatter plot demo for Jzy3d 코드를 관리했지만 코드의 각 비트가 무엇을하는지 알지 못합니다. Jzy3d의 문서는 그다지 많은 정보를 제공하지 않으며 온라인 튜토리얼을 찾을 수 없습니다.

누구나 데모를 설명하거나 유사한 방법이 포함 된 간단한 플로터를 작성하면 많은 도움이됩니다.

Jzy3d에 대한 효율적인 작업 플롯팅 대안도 인정할 수 있습니다.

데모 코드 :

import java.util.Random; 

import org.jzy3d.analysis.AbstractAnalysis; 
import org.jzy3d.analysis.AnalysisLauncher; 
import org.jzy3d.chart.factories.AWTChartComponentFactory; 
import org.jzy3d.colors.Color; 
import org.jzy3d.maths.Coord3d; 
import org.jzy3d.plot3d.primitives.Scatter; 
import org.jzy3d.plot3d.rendering.canvas.Quality; 


public class ScatterDemo extends AbstractAnalysis{ 
    public static void main(String[] args) throws Exception { 
     AnalysisLauncher.open(new ScatterDemo()); 
    } 

    @Override 
    public void init(){ 
     int size = 500000; 
     float x; 
     float y; 
     float z; 
     float a; 

     Coord3d[] points = new Coord3d[size]; 
     Color[] colors = new Color[size]; 

     Random r = new Random(); 
     r.setSeed(0); 

     for(int i=0; i<size; i++){ 
      x = r.nextFloat() - 0.5f; 
      y = r.nextFloat() - 0.5f; 
      z = r.nextFloat() - 0.5f; 
      points[i] = new Coord3d(x, y, z); 
      a = 0.25f; 
      colors[i] = new Color(x, y, z, a); 
     } 

     Scatter scatter = new Scatter(points, colors); 
     chart = AWTChartComponentFactory.chart(Quality.Advanced, "newt"); 
     chart.getScene().add(scatter); 
    } 
} 

답변

0

이 방법을 만들어야합니다 새로운 분산

public void plot(Coord3d[] points, Color[] colors) { 
    Scatter scatter = new Scatter(points, colors); 
    chart = AWTChartComponentFactory.chart(Quality.Advanced, "newt"); 
    chart.getScene().add(scatter); 
} 

이 코드는 좌표와 색상

int size = 100 
Coord3d[] points = new Coord3d[size]; 
Color[] colors = new Color[size]; 
for(int i=0; i < size; i++){ 
     x = i; 
     y = i; 
     z = i; 
     points[i] = new Coord3d(x, y, z); 

     r = 0.5; 
     b = 0.5; 
     g = 0.5; 
     colors[i] = new Color(r, g, b); 
    } 
당신의 값을 사용하여 데이터 집합을 만드는 방법을 보여줍니다