Home > Delphiなどなど > TXYGraph

 TXYGraphの紹介

TXYGraphコントロールは、数学の教科書などで普通にみられる \( x \)軸 と \( y \)軸をもった 2次元の直交グラフを表現する、Delphi コントロールです。 このコントロールに折れ線や散布図をなどを表すデータ列コンポーネントを配置して、 データを追加することにより簡単に直交グラフを表示することができます。

特徴

  • X軸 と Y軸の交点は任意に指定が可能です。
  • 各軸は通常の目盛に加えてπ目盛、対数目盛、%目盛にすることができます。
  • TGraphicControl から派生している。

ダウンロード

Delphi 7 に対応しました。変更点については、readme.txt をご覧ください。 インストール時の不具合を修正しました(加藤さんの指摘による)。

XYGraph135 (132,351 byte) 2005/08/25

*ソフトウェアは公開前に最新のワクチンソフトでウィルスチェックをしています。


■ Topへ

使用方法

  1. インストール方法
  2. XYGraph135.LZHをLHA にてディレクトリ展開つきで解凍してください。 <src>フォルダにある25個のファイルを、ライブラリパスの通ったフォルダにコピー して、GraphReg.pas をインストールして下さい。

  3. 新しいグラフの作成
  4. フォームまたはパネルなどのコンテナコントロール上に、XYGraph コンポーネントを 配置します。次にXYGraph コンポーネントをダブルクリックして、XYGraph コンポーネント のグラフエディタを表示させます。グラフエディタはXYGraphのコンポーネントエディタが 作成する対話型のフォームです。

    データ列の追加イメージ

  5. 新しいデータ列の作成
  6. グラフエディタの[グラフ | データ列]ページで、追加ボタンをクリックすると、 データ列を選択するダイアログボックスが現れます。

    一覧からひとつを選択し、[ OK ]をクリックすると、XYGraphに選択したデータ列が 追加されます。いくつかのサンプルデータをつけて表示されるので、データ列の概要を 設計時にも見ることができます。次の例は散布図データ列をひとつ追加した場合のようすです。

    それぞれのデータ列はXYGraphが所有する「隠れた」サブコンポーネントとして作成されます。 「隠れた」とは、デルファイのオブジェクトインスペクタなどでは表示されるが、 フォームエディタ上にはコンポーネントのアイコンが表示されないという意味です。

  7. データ列へ要素を追加する
  8. ここで追加されたデータ列にはまだ中身がありません。次のステップでデータ列に要素を追加していきます。 要素の追加は、各データ列に用意された追加メソッド(AddXY, AddBubble など)を利用して プログラムで行います。この場合は、プロットする点の各要素を一括してセットで与えます。

    つぎの例は、グラフが Series1 という名前の折れ線データ列に3つの点を追加する場合の コード例です。こうしたコードをフォームの OnCreate イベントやボタンの OnClick イベントで実行するようにします。

        with Series1 do
        begin
          Clear;
          AddXY(0, 5);
          AddXY(2, 8);
          AddXY(4, 6);
        end;
      

    ■ Topへ

サポート情報

データ列がもつ点の制限について

データ列の点の数が 16384 (16進数で4FFF) を超えると、表示されないことを確認しました。

原因は、描画に PolyPolyLine Windows API を使っているのですが、 この関数の第2引数に、16384個以上のポインターの配列のアドレス を与えると、関数がエラーを返すことだと考えています(今のところ)。   その原因が Windows の制限なのか、私のプログラムにあるのか、(後者だと思いますが)未だ調べていません。

<<2006/09/12追記>>以上の現象はWindows98で再現しますが、WindowsXPでは正常に表示されます。

■ Topへ

更新履歴

  • 2002/12/06 version 1.21 Delphian World に登録
  • 2004/09/09 version 1.32
  • 2005/04/01 version 1.35

1.21 -> 1.35の主な変更点: Delphi 7 でもコンパイル可能に変更しました。

  1. XYGraphユニット
    • グラフのズームをサポートしました。
    • 軸タイトルの角度設定における不具合を修正しました。
    • 軸の最大値をゼロにした場合も、フォームファイルに記録されるようにしました。
    • 読み込み時に「軸の範囲を超えている」エラーが出る不具合を修正しました(p-1234さん、木藤和明さんの指摘による)。
  2. XYSeriesユニット
    • TXYGraphSeries.DefinePropertyを削除しました。
    • TXYPolyPolyLineなど、ヘルプにもないデータ系列を削除しました。
  3. XYGphDlgユニット
    • 泡データ列の内部を塗りつぶすパターンを選択するコンポボックスにWindows 2000以降で生じた不具合を修正しました。
    • 軸の副刻みの個数設定での不具合を直しました。
    • 軸の刻みの長さ(TGraphAxis.TickLen)に負の数を許して、逆向きを可能にしました。
    • グラフのタイトル位置の不具合を修正しました(p-1234さんの指摘による)。

■ Topへ