Scatter Plot не изменит цвет
Я пытаюсь изменить цвет точек на моем трехмерном графике рассеяния. Точки меняются на черный, а не на нужный мне цвет, а точка на кнопке меняется на правильный цвет. Кто-нибудь знает, почему это происходит?
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
2 ответа
Решение
Как сказал Мгилсон в комментариях:
use myStyle.setLineType(3);
(@mgilson, если ты хочешь отдать должное за ответ, просто напиши его сам, напиши мне, и я приму это вместо_
Ну, я думаю, что вам нужно использовать setPointType вместо setLineType в диаграмме рассеяния, так как он не имеет линий. у него есть только очки.