Gplot.java

/*
 * $Id: Gplot.java,v 1.11 2008/04/16 01:25:51 koga Exp $
 *
 * Copyright (C) 2004 Koga Laboratory. All rights reserved.
 *
 */
package org.mklab.tool.graph.mgplot;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.mklab.nfc.matrix.DoubleMatrix;


/**
 * @author koga
 * @version $Revision: 1.11 $, 2004/04/30
 */

public class Gplot {

  /**
   * @param X xデータ
   */
  public static void plot(DoubleMatrix X) {
    Mgplot.plot(Mgplot.getCurrentWindow(), X);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   */
  public static void plot(DoubleMatrix X, DoubleMatrix Y) {
    Mgplot.plot(Mgplot.getCurrentWindow(), X, Y);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void plot(DoubleMatrix X, DoubleMatrix Y, String[] titles) {
    plot(X, Y, new ArrayList<>(Arrays.asList(titles)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void plot(DoubleMatrix X, DoubleMatrix Y, List<String> titles) {
    Mgplot.plot(Mgplot.getCurrentWindow(), X, Y, titles);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void plot(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1) {
    Mgplot.plot(Mgplot.getCurrentWindow(), X, Y, titles, cmds1);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void plot(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1) {
    plot(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void plot(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1, String[] cmds2) {
    plot(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)), new ArrayList<>(Arrays.asList(cmds2)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void plot(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1, List<String> cmds2) {
    Mgplot.plot(Mgplot.getCurrentWindow(), X, Y, titles, cmds1, cmds2);
  }

  /**
   * @param X xデータ
   */
  public static void replot(DoubleMatrix X) {
    Mgplot.replot(Mgplot.getCurrentWindow(), X);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   */
  public static void replot(DoubleMatrix X, DoubleMatrix Y) {
    Mgplot.replot(Mgplot.getCurrentWindow(), X, Y);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void replot(DoubleMatrix X, DoubleMatrix Y, List<String> titles) {
    Mgplot.replot(Mgplot.getCurrentWindow(), X, Y, titles);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void replot(DoubleMatrix X, DoubleMatrix Y, String[] titles) {
    replot(X, Y, new ArrayList<>(Arrays.asList(titles)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void replot(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1) {
    Mgplot.replot(Mgplot.getCurrentWindow(), X, Y, titles, cmds1);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void replot(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1) {
    replot(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void replot(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1, String[] cmds2) {
    replot(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)), new ArrayList<>(Arrays.asList(cmds2)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void replot(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1, List<String> cmds2) {
    Mgplot.replot(Mgplot.getCurrentWindow(), X, Y, titles, cmds1, cmds2);
  }

  /**
   * @param cmd コマンド
   */
  public static void command(String cmd) {
    Mgplot.command(Mgplot.getCurrentWindow(), cmd);
  }

  /**
   * @return hold
   */
  public static boolean hold() {
    return Mgplot.hold(Mgplot.getCurrentWindow());
  }

  /**
   * @param on ホールドするならばtrue
   * @return hold
   */
  public static boolean hold(boolean on) {
    return Mgplot.hold(Mgplot.getCurrentWindow(), on);
  }

  /**
   * @param str 出力する文字列
   */
  public static void out(String str) {
    Mgplot.out(Mgplot.getCurrentWindow(), str);
  }

  /**
   * 
   */
  public static void clear() {
    Mgplot.clear(Mgplot.getCurrentWindow());
  }

  /**
   * 
   */
  public static void reset() {
    Mgplot.reset(Mgplot.getCurrentWindow());
  }

  /**
   * 
   */
  public static void grid() {
    Mgplot.grid(Mgplot.getCurrentWindow());
  }

  /**
   * @param on グリッドを描画するならばtrue
   */
  public static void grid(boolean on) {
    Mgplot.grid(Mgplot.getCurrentWindow(), on);
  }

  /**
   * 
   */
  public static void key() {
    Mgplot.key(Mgplot.getCurrentWindow());
  }

  /**
   * @param on キーを描画するならばtrue
   */
  public static void key(boolean on) {
    Mgplot.key(Mgplot.getCurrentWindow(), on);
  }

  /**
   * 
   */
  public static void update() {
    Mgplot.update(Mgplot.getCurrentWindow());
  }

  /**
   * 
   */
  public static void parametric() {
    Mgplot.parametric(Mgplot.getCurrentWindow());
  }

  /**
   * @param on パラメトリックプロットならばtrue
   */
  public static void parametric(boolean on) {
    Mgplot.parametric(Mgplot.getCurrentWindow(), on);
  }

  /**
   * 
   */
  public static void hidden3d() {
    Mgplot.hidden3d(Mgplot.getCurrentWindow());
  }

  /**
   * @param on 陰線処理をするならばtrue
   */
  public static void hidden3d(boolean on) {
    Mgplot.hidden3d(Mgplot.getCurrentWindow(), on);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   */
  public static void loglog(DoubleMatrix X, DoubleMatrix Y) {
    loglog(X, Y, new ArrayList<String>(), new ArrayList<String>(), new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void loglog(DoubleMatrix X, DoubleMatrix Y, List<String> titles) {
    loglog(X, Y, titles, new ArrayList<String>(), new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void loglog(DoubleMatrix X, DoubleMatrix Y, String[] titles) {
    loglog(X, Y, new ArrayList<>(Arrays.asList(titles)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void loglog(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1) {
    loglog(X, Y, titles, cmds1, new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void loglog(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1) {
    loglog(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void loglog(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1, String[] cmds2) {
    loglog(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)), new ArrayList<>(Arrays.asList(cmds2)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void loglog(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1, List<String> cmds2) {
    Mgplot.loglog(Mgplot.getCurrentWindow(), X, Y, titles, cmds1, cmds2);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   */
  public static void replot_loglog(DoubleMatrix X, DoubleMatrix Y) {
    replot_loglog(X, Y, new ArrayList<String>(), new ArrayList<String>(), new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void replot_loglog(DoubleMatrix X, DoubleMatrix Y, List<String> titles) {
    replot_loglog(X, Y, titles, new ArrayList<String>(), new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void replot_loglog(DoubleMatrix X, DoubleMatrix Y, String[] titles) {
    replot_loglog(X, Y, new ArrayList<>(Arrays.asList(titles)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void replot_loglog(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1) {
    replot_loglog(X, Y, titles, cmds1, new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void replot_loglog(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1) {
    replot_loglog(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void replot_loglog(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1, List<String> cmds2) {
    Mgplot.replot_loglog(Mgplot.getCurrentWindow(), X, Y, titles, cmds1, cmds2);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void replot_loglog(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1, String[] cmds2) {
    replot_loglog(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)), new ArrayList<>(Arrays.asList(cmds2)));
  }

  /**
   * @param filename ファイル名
   * @param mode {"ps", "eps", "psplus", "epsplus", "fig"}
   */
  public static void export(String filename, String mode) {
    Mgplot.export(Mgplot.getCurrentWindow(), filename, mode);
  }

  /**
   * @param filename ファイル名
   * @param mode {"ps", "eps", "psplus", "epsplus", "fig"}
   * @param cmd コマンド
   */
  public static void export(String filename, String mode, String cmd) {
    Mgplot.export(Mgplot.getCurrentWindow(), filename, mode, cmd);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   */
  public static void semilogx(DoubleMatrix X, DoubleMatrix Y) {
    semilogx(X, Y, new ArrayList<String>(), new ArrayList<String>(), new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void semilogx(DoubleMatrix X, DoubleMatrix Y, List<String> titles) {
    semilogx(X, Y, titles, new ArrayList<String>(), new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void semilogx(DoubleMatrix X, DoubleMatrix Y, String[] titles) {
    semilogx(X, Y, new ArrayList<>(Arrays.asList(titles)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void semilogx(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1) {
    semilogx(X, Y, titles, cmds1, new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void semilogx(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1) {
    semilogx(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void semilogx(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1, List<String> cmds2) {
    Mgplot.semilogx(Mgplot.getCurrentWindow(), X, Y, titles, cmds1, cmds2);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void semilogx(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1, String[] cmds2) {
    semilogx(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)), new ArrayList<>(Arrays.asList(cmds2)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   */
  public static void replot_semilogx(DoubleMatrix X, DoubleMatrix Y) {
    replot_semilogx(X, Y, new ArrayList<String>(), new ArrayList<String>(), new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void replot_semilogx(DoubleMatrix X, DoubleMatrix Y, List<String> titles) {
    replot_semilogx(X, Y, titles, new ArrayList<String>(), new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void replot_semilogx(DoubleMatrix X, DoubleMatrix Y, String[] titles) {
    replot_semilogx(X, Y, new ArrayList<>(Arrays.asList(titles)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void replot_semilogx(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1) {
    replot_semilogx(X, Y, titles, cmds1, new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void replot_semilogx(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1) {
    replot_semilogx(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void replot_semilogx(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1, List<String> cmds2) {
    Mgplot.replot_semilogx(Mgplot.getCurrentWindow(), X, Y, titles, cmds1, cmds2);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void replot_semilogx(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1, String[] cmds2) {
    replot_semilogx(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)), new ArrayList<>(Arrays.asList(cmds2)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   */
  public static void semilogy(DoubleMatrix X, DoubleMatrix Y) {
    semilogy(X, Y, new ArrayList<String>(), new ArrayList<String>(), new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void semilogy(DoubleMatrix X, DoubleMatrix Y, List<String> titles) {
    semilogy(X, Y, titles, new ArrayList<String>(), new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void semilogy(DoubleMatrix X, DoubleMatrix Y, String[] titles) {
    semilogy(X, Y, new ArrayList<>(Arrays.asList(titles)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void semilogy(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1) {
    semilogy(X, Y, titles, cmds1, new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void semilogy(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1) {
    semilogy(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void semilogy(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1, List<String> cmds2) {
    Mgplot.semilogy(Mgplot.getCurrentWindow(), X, Y, titles, cmds1, cmds2);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void semilogy(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1, String[] cmds2) {
    semilogy(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)), new ArrayList<>(Arrays.asList(cmds2)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   */
  public static void replot_semilogy(DoubleMatrix X, DoubleMatrix Y) {
    replot_semilogy(X, Y, new ArrayList<String>(), new ArrayList<String>(), new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void replot_semilogy(DoubleMatrix X, DoubleMatrix Y, List<String> titles) {
    replot_semilogy(X, Y, titles, new ArrayList<String>(), new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   */
  public static void replot_semilogy(DoubleMatrix X, DoubleMatrix Y, String[] titles) {
    replot_semilogy(X, Y, new ArrayList<>(Arrays.asList(titles)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void replot_semilogy(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1) {
    replot_semilogy(X, Y, titles, cmds1, new ArrayList<String>());
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   */
  public static void replot_semilogy(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1) {
    replot_semilogy(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)));
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void replot_semilogy(DoubleMatrix X, DoubleMatrix Y, List<String> titles, List<String> cmds1, List<String> cmds2) {
    Mgplot.replot_semilogy(Mgplot.getCurrentWindow(), X, Y, titles, cmds1, cmds2);
  }

  /**
   * @param X xデータ
   * @param Y yデータ
   * @param titles 線のタイトル
   * @param cmds1 タイトルの前に指定するコマンド
   * @param cmds2 タイトルの後に指定するコマンド
   */
  public static void replot_semilogy(DoubleMatrix X, DoubleMatrix Y, String[] titles, String[] cmds1, String[] cmds2) {
    replot_semilogy(X, Y, new ArrayList<>(Arrays.asList(titles)), new ArrayList<>(Arrays.asList(cmds1)), new ArrayList<>(Arrays.asList(cmds2)));
  }

  /**
   * @param text テキスト文字列
   * @param x x座標
   * @param y y座標
   */
  public static void text(String text, double x, double y) {
    text(text, x, y, ""); //$NON-NLS-1$
  }

  /**
   * @param text テキスト文字列
   * @param x x座標
   * @param y y座標
   * @param cmds コマンド
   */
  public static void text(String text, double x, double y, String cmds) {
    Mgplot.text(Mgplot.getCurrentWindow(), text, x, y, cmds);
  }

  /**
   * @param text グラフのタイトル
   */
  public static void title(String text) {
    Mgplot.title(Mgplot.getCurrentWindow(), text);
  }

  /**
   * @param text x軸のタイトル
   */
  public static void xlabel(String text) {
    Mgplot.xlabel(Mgplot.getCurrentWindow(), text);
  }

  /**
   * @param text x軸のタイトル
   * @param xoff x方向のオフセット
   */
  public static void xlabel(String text, int xoff) {
    Mgplot.xlabel(Mgplot.getCurrentWindow(), text, xoff);
  }

  /**
   * @param text x軸のタイトル
   * @param xoff x方向のオフセット
   * @param yoff y方向のオフセット
   */
  public static void xlabel(String text, int xoff, int yoff) {
    Mgplot.xlabel(Mgplot.getCurrentWindow(), text, xoff, yoff);
  }

  /**
   * @param text 第2のx軸のタイトル
   */
  public static void x2label(String text) {
    Mgplot.x2label(Mgplot.getCurrentWindow(), text);
  }

  /**
   * @param text 第2のx軸のタイトル
   * @param xoff x方向のオフセット
   */
  public static void x2label(String text, int xoff) {
    Mgplot.x2label(Mgplot.getCurrentWindow(), text, xoff);
  }

  /**
   * @param text 第2のx軸のタイトル
   * @param xoff x方向のオフセット
   * @param yoff y方向のオフセット
   */
  public static void x2label(String text, int xoff, int yoff) {
    Mgplot.x2label(Mgplot.getCurrentWindow(), text, xoff, yoff);
  }

  /**
   * @param text y軸のタイトル
   */
  public static void ylabel(String text) {
    Mgplot.ylabel(Mgplot.getCurrentWindow(), text);
  }

  /**
   * @param text y軸のタイトル
   * @param xoff x方向のオフセット
   */
  public static void ylabel(String text, int xoff) {
    Mgplot.ylabel(Mgplot.getCurrentWindow(), text, xoff);
  }

  /**
   * @param text y軸のタイトル
   * @param xoff x方向のオフセット
   * @param yoff y方向のオフセット
   */
  public static void ylabel(String text, int xoff, int yoff) {
    Mgplot.ylabel(Mgplot.getCurrentWindow(), text, xoff, yoff);
  }

  /**
   * @param text 第2のy軸のタイトル
   */
  public static void y2label(String text) {
    Mgplot.y2label(Mgplot.getCurrentWindow(), text);
  }

  /**
   * @param text 第2のy軸のタイトル
   * @param xoff x方向のオフセット
   */
  public static void y2label(String text, int xoff) {
    Mgplot.y2label(Mgplot.getCurrentWindow(), text, xoff);
  }

  /**
   * @param text 第2のy軸のタイトル
   * @param xoff x方向のオフセット
   * @param yoff y方向のオフセット
   */
  public static void y2label(String text, int xoff, int yoff) {
    Mgplot.y2label(Mgplot.getCurrentWindow(), text, xoff, yoff);
  }

  /**
   * @param text z軸のタイトル
   */
  public static void zlabel(String text) {
    Mgplot.zlabel(Mgplot.getCurrentWindow(), text);
  }

  /**
   * @param text z軸のタイトル
   * @param xoff x方向のオフセット
   */
  public static void zlabel(String text, int xoff) {
    Mgplot.zlabel(Mgplot.getCurrentWindow(), text, xoff);
  }

  /**
   * @param text z軸のタイトル
   * @param xoff x方向のオフセット
   * @param yoff y方向のオフセット
   */
  public static void zlabel(String text, int xoff, int yoff) {
    Mgplot.zlabel(Mgplot.getCurrentWindow(), text, xoff, yoff);
  }

  /**
   * @param rotate_x x軸周りの回転角度
   */
  public static void view(double rotate_x) {
    Mgplot.view(Mgplot.getCurrentWindow(), rotate_x);
  }

  /**
   * @param xmin x軸の下限
   * @param xmax x軸の上限
   */
  public static void range(double xmin, double xmax) {
    Mgplot.range(Mgplot.getCurrentWindow(), xmin, xmax);
  }

  /**
   * @param xmin x軸の下限
   * @param xmax x軸の上限
   * @param ymin y軸の下限
   * @param ymax y軸の上限
   */
  public static void range(double xmin, double xmax, double ymin, double ymax) {
    Mgplot.range(Mgplot.getCurrentWindow(), xmin, xmax, ymin, ymax);
  }

  /**
   * @param xmin x軸の下限
   * @param xmax x軸の上限
   * @param ymin y軸の下限
   * @param ymax y軸の上限
   * @param zmin z軸の下限
   * @param zmax z軸の下限
   */
  public static void range(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax) {
    Mgplot.range(Mgplot.getCurrentWindow(), xmin, xmax, ymin, ymax, zmin, zmax);
  }

  /**
   * @param min x軸の下限
   * @param max x軸の上限
   */
  public static void xrange(double min, double max) {
    Mgplot.xrange(Mgplot.getCurrentWindow(), min, max);
  }

  /**
   * @param min y軸の下限
   * @param max y軸の下限
   */
  public static void yrange(double min, double max) {
    Mgplot.yrange(Mgplot.getCurrentWindow(), min, max);
  }

  /**
   * @param min z軸の下限
   * @param max z軸の下限
   */
  public static void zrange(double min, double max) {
    Mgplot.zrange(Mgplot.getCurrentWindow(), min, max);
  }

  /**
   * @param rotate_x x軸周りの回転角度
   * @param rotate_z z軸周りの回転角度
   */
  public static void view(double rotate_x, double rotate_z) {
    Mgplot.view(Mgplot.getCurrentWindow(), rotate_x, rotate_z);
  }

  /**
   * @param rotate_x x軸周りの回転角度
   * @param rotate_z z軸周りの回転角度
   * @param scale 倍率
   */
  public static void view(double rotate_x, double rotate_z, double scale) {
    Mgplot.view(Mgplot.getCurrentWindow(), rotate_x, rotate_z, scale);
  }

  /**
   * @param rotate_x x軸周りの回転角度
   * @param rotate_z z軸周りの回転角度
   * @param scale 倍率
   * @param scale_z z方向の倍率
   */
  public static void view(double rotate_x, double rotate_z, double scale, double scale_z) {
    Mgplot.view(Mgplot.getCurrentWindow(), rotate_x, rotate_z, scale, scale_z);
  }

  /**
   * @param options オプション
   */
  public static void options(String options) {
    Mgplot.options(Mgplot.getCurrentWindow(), options);
  }

  /**
   * @param rowSize 行の分割数
   * @param columnSize 列の分割数
   */
  public static void subplot(int rowSize, int columnSize) {
    subplot(rowSize, columnSize, 1);
  }

  /**
   * @param rowSize 行の分割数
   * @param columnSize 列の分割数
   * @param frame フレームの番号
   */
  public static void subplot(int rowSize, int columnSize, int frame) {
    Mgplot.subplot(Mgplot.getCurrentWindow(), rowSize, columnSize, frame);
  }

  /**
   * 全てのウィンドウを終了します。
   */
  public static void quit() {
    Mgplot.quit(Mgplot.getCurrentWindow());
  }
}