/**
  * Sets the y axis to linear or logarithmic.
  *
  * @param isLog true for log scale; false otherwise
  */
 public void setYLog(boolean isLog) {
   ylog = isLog; // Added by Paco
   if (isLog) {
     yaxis.setAxisType(XYAxis.LOG10);
   } else {
     yaxis.setAxisType(XYAxis.LINEAR);
   }
 }
 /**
  * Draws the axes in the drawing panel.
  *
  * @param panel
  * @param g
  */
 public void draw(DrawingPanel panel, Graphics g) {
   if (!visible) {
     return;
   }
   if (interiorColor != null) {
     g.setColor(interiorColor);
     int gw = panel.getLeftGutter() + panel.getRightGutter();
     int gh = panel.getTopGutter() + panel.getBottomGutter();
     g.fillRect(
         panel.getLeftGutter(),
         panel.getTopGutter(),
         panel.getWidth() - gw,
         panel.getHeight() - gh);
     g.setColor(Color.lightGray);
     g.drawRect(
         panel.getLeftGutter(),
         panel.getTopGutter(),
         panel.getWidth() - gw,
         panel.getHeight() - gh);
   }
   xaxis.draw(panel, g);
   yaxis.draw(panel, g);
   titleLine.setX((panel.getXMax() + panel.getXMin()) / 2);
   if (panel.getTopGutter() > 20) {
     titleLine.setY(panel.getYMax() + 5 / panel.getYPixPerUnit());
   } else {
     titleLine.setY(panel.getYMax() - 25 / panel.getYPixPerUnit());
   }
   titleLine.draw(panel, g);
 }
 public Interactive findInteractive(DrawingPanel panel, int xpix, int ypix) {
   if (!visible) {
     return null;
   }
   if (xaxis.findInteractive(panel, xpix, ypix) != null) {
     return xaxis;
   } else if (yaxis.findInteractive(panel, xpix, ypix) != null) {
     return yaxis;
   } else {
     return null;
   }
 }
 /**
  * Constructs the XYAxes inside the drawing panel.
  *
  * <p>Drawing panel gutters are set to 30, 30, 30, 30.
  *
  * @param panel the drawing panel that will use the axes
  */
 public CartesianType3(PlottingPanel panel) {
   super(panel);
   defaultLeftGutter = 30;
   defaultTopGutter = 30;
   defaultRightGutter = 30;
   defaultBottomGutter = 30;
   titleLine.setJustification(TextLine.CENTER);
   titleLine.setFont(titleFont);
   xaxis = new XAxis();
   yaxis = new YAxis();
   xaxis.setEnabled(true); // enable dragging
   xaxis.setLocationType(XYAxis.DRAW_AT_LOCATION);
   yaxis.setEnabled(true);
   yaxis.setLocationType(XYAxis.DRAW_AT_LOCATION);
   if (panel == null) {
     return;
   }
   panel.setCoordinateStringBuilder(CoordinateStringBuilder.createCartesian());
   panel.setPreferredGutters(
       defaultLeftGutter, defaultTopGutter, defaultRightGutter, defaultBottomGutter);
   panel.setAxes(this);
 }
 /**
  * Sets the y label of the axes. The font names understood are those understood by
  * java.awt.Font.decode(). If the font name is null, the font remains unchanged.
  *
  * @param s the title
  * @param font_name an optional font name
  */
 public void setYLabel(String s, String font_name) {
   yaxis.setTitle(s, font_name);
 }
 public void setX(double x) {
   yaxis.setLocation(x); // Added by Paco
 }
 public void setXY(double x, double y) {
   xaxis.setLocation(y); // Added by Paco
   yaxis.setLocation(x); // Added by Paco
 }
 public void centerAxes(DrawingPanel panel) {
   xaxis.setLocation((panel.getYMax() + panel.getYMin()) / 2);
   yaxis.setLocation((panel.getXMax() + panel.getXMin()) / 2);
 }
 /** Shows a grid line for every y axis major tickmark. */
 public void setShowMajorYGrid(boolean showGrid) {
   yaxis.setShowMajorGrid(showGrid);
   if (!showGrid) {
     setShowMinorYGrid(showGrid);
   }
 }