25package umontreal.ssj.charts;
27import org.jfree.data.xy.XYDataset;
28import org.jfree.chart.renderer.xy.XYItemRenderer;
30import java.util.Locale;
31import java.util.Formatter;
42 protected XYItemRenderer renderer;
43 protected XYDataset seriesCollection;
56 public double getX(
int series,
int index) {
57 return seriesCollection.getXValue(series, index);
67 public double getY(
int series,
int index) {
68 return seriesCollection.getYValue(series, index);
77 return seriesCollection;
86 double max = -1.0e307, min = 1.0e307;
88 if (seriesCollection.getSeriesCount() != 0 && seriesCollection.getItemCount(0) != 0)
89 max = min = seriesCollection.getXValue(0, 0);
91 for (
int i = 0; i < seriesCollection.getSeriesCount(); i++) {
92 for (
int j = 0; j < seriesCollection.getItemCount(i); j++) {
93 max = Math.max(max, seriesCollection.getXValue(i, j));
94 min = Math.min(min, seriesCollection.getXValue(i, j));
98 double[] retour = { min, max };
108 double max = -1.7e307, min = 1.7e307;
110 if (seriesCollection.getSeriesCount() != 0 && seriesCollection.getItemCount(0) != 0)
111 max = min = seriesCollection.getYValue(0, 0);
113 for (
int i = 0; i < seriesCollection.getSeriesCount(); i++) {
114 for (
int j = 0; j < seriesCollection.getItemCount(i); j++) {
115 max = Math.max(max, seriesCollection.getYValue(i, j));
116 min = Math.min(min, seriesCollection.getYValue(i, j));
120 double[] retour = { min, max };
130 Formatter formatter =
new Formatter(Locale.US);
131 for (
int i = 0; i < seriesCollection.getSeriesCount(); i++) {
132 formatter.format(
" Series " + i +
" : %n");
133 for (
int j = 0; j < seriesCollection.getItemCount(i); j++)
134 formatter.format(
"%15e,%15e%n",
getX(i, j),
getY(i, j));
136 return formatter.toString();
164 this.renderer = renderer;
173 return (Color) renderer.getSeriesPaint(series);
183 renderer.setSeriesPaint(series, color);
202 public abstract String
toLatex(
double XScale,
double YScale,
double XShift,
double YShift,
double xmin,
double xmax,
203 double ymin,
double ymax);
213 String retour =
null;
215 int red = color.getRed();
216 int green = color.getGreen();
217 int blue = color.getBlue();
221 if (red == Color.GREEN.getRed() && blue == Color.GREEN.getBlue() && green == Color.GREEN.getGreen())
223 else if (red == Color.RED.getRed() && blue == Color.RED.getBlue() && green == Color.RED.getGreen())
225 else if (red == Color.WHITE.getRed() && blue == Color.WHITE.getBlue() && green == Color.WHITE.getGreen())
227 else if (red == Color.GRAY.getRed() && blue == Color.GRAY.getBlue() && green == Color.GRAY.getGreen())
229 else if (red == Color.BLACK.getRed() && blue == Color.BLACK.getBlue() && green == Color.BLACK.getGreen())
231 else if (red == Color.YELLOW.getRed() && blue == Color.YELLOW.getBlue() && green == Color.YELLOW.getGreen())
233 else if (red == Color.MAGENTA.getRed() && blue == Color.MAGENTA.getBlue() && green == Color.MAGENTA.getGreen())
235 else if (red == Color.CYAN.getRed() && blue == Color.CYAN.getBlue() && green == Color.CYAN.getGreen())
237 else if (red == Color.BLUE.getRed() && blue == Color.BLUE.getBlue() && green == Color.BLUE.getGreen())
239 else if (red == Color.DARK_GRAY.getRed() && blue == Color.DARK_GRAY.getBlue()
240 && green == Color.DARK_GRAY.getGreen())
242 else if (red == Color.LIGHT_GRAY.getRed() && blue == Color.LIGHT_GRAY.getBlue()
243 && green == Color.LIGHT_GRAY.getGreen())
245 else if (red == Color.ORANGE.getRed() && blue == Color.ORANGE.getBlue() && green == Color.ORANGE.getGreen())
247 else if (red == Color.PINK.getRed() && blue == Color.PINK.getBlue() && green == Color.PINK.getGreen())
250 if (red == 192 && blue == 128 && green == 64)
252 else if (red == 128 && blue == 128 && green == 0)
254 else if (red == 128 && blue == 0 && green == 128)
256 else if (red == 192 && blue == 0 && green == 64)
271 else if (index % 6 == 1)
273 else if (index % 6 == 2)
275 else if (index % 6 == 3)
277 else if (index % 6 == 4)
278 return Color.MAGENTA;
284 protected static double max(
double[] t) {
286 for (
int i = 1; i < t.length; i++)
293 protected static double min(
double[] t) {
295 for (
int i = 1; i < t.length; i++)
Stores data used in a XYChart.
double getY(int series, int index)
Returns the -value at the specified index in the specified series.
static Color getDefaultColor(int index)
Gives the default color associated with a series.
abstract String toLatex(double XScale, double YScale, double XShift, double YShift, double xmin, double xmax, double ymin, double ymax)
Formats and returns a string containing a LaTeX-compatible source code which represents this data ser...
XYDataset getSeriesCollection()
Returns the XYDataset object associated with the current object.
double[] getRangeBounds()
Returns range ( -coordinates) min and max values.
double getX(int series, int index)
Returns the -value at the specified index in the specified series.
double[] getDomainBounds()
Returns domain ( -coordinates) min and max values.
XYItemRenderer getRenderer()
Returns the XYItemRenderer object associated with the current object.
static String detectXColorClassic(Color color)
Converts a java Color object into a friendly and readable LaTeX/xcolor string.
void setRenderer(XYItemRenderer renderer)
Sets the XYItemRenderer object associated with the current variable.
void setColor(int series, Color color)
Sets a new plotting color to the series .
Color getColor(int series)
Gets the current plotting color of the selected series.
String toString()
Returns in a String all data contained in the current object.