2012-07-09 2 views
1

3D 분산 형 플롯에서 점의 색상을 변경하려고합니다. 포인트가 검은 색으로 바뀌고 원하는 색상이 아닌 키의 포인트가 올바른 색상으로 바뀝니다. 왜 이런 일이 일어나는 지 아는 사람이 있습니까?산포도가 색상을 변경하지 않습니다.

import com.panayotis.gnuplot.JavaPlot; 
import com.panayotis.gnuplot.plot.*; 
import com.panayotis.gnuplot.style.NamedPlotColor; 
import com.panayotis.gnuplot.style.PlotStyle; 
import com.panayotis.gnuplot.style.Style; 


public class ScatterPlot4D { 

public static void main(String[] args) { 

    int rows = 100; 
    int D = 4; 

    double [][] dataSet = new double [rows][D]; 
    for(int x = 0;x < rows; x++){ 
     for(int y = 0;y < D; y++){ 
      dataSet[x][y]=Math.random(); 
     } 
    } 

    JavaPlot p = new JavaPlot("C:\\Program Files\\gnuplot\\bin\\pgnuplot.exe");  
    p.newGraph3D(); 

    PlotStyle myStyle = new PlotStyle(); 
    myStyle.setStyle(Style.POINTS); 
    myStyle.setLineType(NamedPlotColor.BLUE); 

    DataSetPlot myPlot = new DataSetPlot(dataSet); 
    myPlot.setPlotStyle(myStyle); 

    p.addPlot(myPlot); 

    p.splot(); 

} 
} 

기능을 그래프로 표시 할 때 이상한 점은 무엇입니까?

import com.panayotis.gnuplot.GNUPlot; 
import com.panayotis.gnuplot.plot.*; 
import com.panayotis.gnuplot.style.NamedPlotColor; 
import com.panayotis.gnuplot.style.PlotStyle; 
import com.panayotis.gnuplot.style.Style; 

public class test3D { 

public static void main(String[] args) { 

    GNUPlot p = new GNUPlot("C:\\Program Files\\gnuplot\\bin\\pgnuplot.exe"); 

    p.newGraph3D(); 

    PlotStyle myStyle = new PlotStyle(); 
    myStyle.setStyle(Style.IMPULSES); 
    myStyle.setLineType(NamedPlotColor.BLUE); 

    FunctionPlot myPlot = new FunctionPlot("tan(x)"); 
    myPlot.setTitle("3D Plot"); 
    myPlot.setPlotStyle(myStyle); 

    p.addPlot(myPlot); 

    p.splot(); 

} 

} 

의 gnuplot는 명령을 전송되는 : 더 라인이없는 그대로

gnuplot> set multiplot layout 1,2 rowsfirst downwards 
multiplot> _gnuplot_error = 1 
multiplot> splot '-' title 'Datafile 1' with points linetype rgb 'blue' ;_gnuplot_error = 0X 
input data ('e' ends) > random data is here, not included for brevity 
multiplot> if (_gnuplot_error == 1) print '_ERROR_' 
multiplot> unset multiplot 
+0

을 instead_ 받아 들일 것입니다 거기에 어떤 GNUPlot 파일을 파일에 덤프하여 gnuplot의 작업 내용을 볼 수있게 해주는 방법 – mgilson

+0

@mgilson, 예, 편집에 포함 시켰습니다 – Daniel

+0

PlotStyle 클래스는 "setLineColor"메소드를 제공합니까? 기본적으로 문제는 '... 포인트 선 종류 rgb 'blue'' 대신'... 점 linecolor rgb'blue''와 함께 – mgilson

답변

0

말했듯이 : 당신이 대답에 대한 크레딧을 원하는 경우

use myStyle.setLineType(3); 

(@mgilson은, 그냥 스스로를 쓰기 메시지 나에게 내가 그것을

0

잘, 나는 당신이 필요로하는 무엇을 분산 그래프에 setPointType 대신 setLineType을 사용하는 것입니다 생각합니다. 포인트 만 있습니다. mgilson이 코멘트에

+0

setPointType은 int를 인수로 사용합니다. 다양한 옵션 사용하기 나는 색상이 아닌 점의 모양 만 바꿀 수있었습니다. http://sparky.rice.edu/gnuplot.html은 int로 색상을 바꿀 수 있다고 생각하게하지만 제대로 작동하지 않는 것 같습니다. – Daniel

관련 문제