スポンサーリンク
スポンサーリンク

はじめてのGMT6(グラフ編) その2

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
はじめてのGMT6(グラフ編)
はじめてGMT6を触る方に向けて、グラフの描き方の基礎を掲載しています。

そういえば、昔のブログ時代には初心者向けにクリスマスツリーを描くスクリプトを紹介していました。
今回はその復刻版です。

スポンサーリンク
スポンサーリンク

クリスマスツリーを描く

今回は季節外れのクリスマスツリーを描いてみます。

これを描くためには、

  1. グラフの枠を描く
  2. 葉の輪郭を描き緑色に塗りつぶす
  3. 幹の輪郭を描き茶色に塗りつぶす
  4. 星とリースを付ける

の4ステップです。順番にのんびりやっていきましょう。

グラフの枠を描く

gmt basemapの使い方
GMTのbasemapモジュールについて説明しています。

何か図を描く際は原則gmt basemapから書き始めましょう。儀式です。

今回は15cm*15cmの図を作成します。範囲はX軸・Y軸ともに0~100とすればいいでしょう。グラフの場合は-JXとします。

#!/bin/bash
gmt begin christmas png
    gmt basemap -JX15 -R0/100/0/100 -Bafg -BWSNE+t"Christmas_Tree"
gmt end


  • gmt basemap -JX15 -R0/100/0/100 -Bafg -BWSne+t"Christmas_Tree"
    • グラフの枠を描きます!
    • -JX15 : 図の大きさは15cm平方です。 ←-JX15/15でも可だが、平方の図を書く際は省略可能。
    • -R0/100/0/100 : X軸は0から100まで、Y軸は0から100まで値を取ってください!
    • -Bafg : X軸もY軸も目盛間隔はGMTにお任せします。 ←-Bxafg -Byafgでも-Bxyafgでも可。
    • -BWSne+t"Christmas_Tree" : 目盛りと軸ラベルは下(南)左(西)に書いてください。「Christmas_Tree」というタイトルも付けてください!

葉の輪郭を描き緑色に塗りつぶす

gmt plot の使い方
GMTのplotモジュールについて説明しています。

葉っぱ部分の輪郭を描いてみよう。何か線や記号を描く際はgmt plotを使います。
先ほどのスクリプトを以下のように書き変えてみます。

#!/bin/bash
gmt begin christmas_tree png
    gmt basemap -JX15 -R0/100/0/100 -Bagf -BWSne+t"Christmas_Tree"
    gmt plot -L -W1,black  << END
50 90
30 70
35 70
10 40
90 40
65 70
70 70
END
gmt end


  • gmt plot -L -W1,black << END
    • 直線や記号を描きます!
    • -L : 「最初の座標」と「最後の座標」を結んで閉じた多角形にしてください。
    • -W1,black : 線の太さは1ポイントで描いてください!
    • << END : 線を引いてほしい座標は次の行からENDが現れるところまでです!

これを緑色に塗りつぶすには、gmt plot-Gを書き加えます。

#!/bin/bash
gmt begin christmas_tree png
    gmt basemap -JX15 -R0/100/0/100 -Bagf -BWSne+t"Christmas_Tree"
    gmt plot -L -W1,black -Ggreen  << END
50 90
30 70
35 70
10 40
90 40
65 70
70 70
END
gmt end


  • gmt plot -L -W1,black -Ggreen << END
    • 直線や記号を描きます!
    • -L : 「最初の座標」と「最後の座標」を結んで閉じた多角形にしてください。
    • -W1,black : 線の太さは1ポイント。黒で描いてください!
    • -Ggreen : 閉じた多角形の中をgreenで塗りつぶしてください!
    • << END : 線を引いてほしい座標は次の行からENDが現れるところまでです!

幹の輪郭を描き茶色に塗りつぶす

これは葉を描いたときと同じ要領です。

#!/bin/bash
gmt begin christmas_tree png
    gmt basemap -JX15 -R0/100/0/100 -Bagf -BWSne+t"Christmas_Tree"
    gmt plot -L -W1,black -Ggreen << END
50 90
30 70
35 70
10 40
90 40
65 70
70 70
50 90
END
    gmt plot -L -W1,Black -Gbrown << END
40 40
40 20
60 20
60 40
END
gmt end


  • gmt plot -L -W1,black -Ggreen << END

    • 直線や記号を描きます!
    • -L : 「最初の座標」と「最後の座標」を結んで閉じた多角形にしてください。
    • -W1,black : 線の太さは1ポイント。黒で描いてください!
    • -Ggreen : 閉じた多角形の中をgreenで塗りつぶしてください!
    • << END : 線を引いてほしい座標は次の行からENDが現れるところまでです!
  • gmt plot -L -W1,Black -Gbrown << END

    • 直線や記号を描きます!
    • -L : 「最初の座標」と「最後の座標」を結んで閉じた多角形にしてください。
    • -W1,black : 線の太さは1ポイント。黒で描いてください!
    • -Gbrown : 閉じた多角形の中をbrownで塗りつぶしてください!
    • << END : 線を引いてほしい座標は次の行からENDが現れるところまでです!

ここで、

  • 座標を指定する方法は標準入力を用いても問題ない。すなわち、
    echo -e "40 40\n40 20\n60 20\n60 40" | gmt plot -W1,black -Gbrown
    でも動く。

  • 座標は外部ファイルからでも読み込む。
    たとえば、tree.csvとかのファイルに座標データが格納されている場合は、
    gmt plot tree.csv -W1,black -Gbrown
    でOK。座標は「X,Y」の順番にすること。

ことを覚えておきましょう。

星とリースを付ける

クリスマスツリーなので星を飾ろう。
上のスクリプトを以下のように書き足す。

#!/bin/bash
gmt begin christmas_tree png
    gmt basemap -JX15 -R0/100/0/100 -Bagf -BWSne+t"Christmas_Tree"
    gmt plot -L -W1,black -Ggreen << END
50 90
30 70
35 70
10 40
90 40
65 70
70 70
50 90
END
    gmt plot -L -W1,Black -Gbrown << END
40 40
40 20
60 20
60 40
END
    gmt plot -Sa2.0 -W1,black -Gyellow << END
50 90
END
gmt end

それっぽくなってきましたね!

記号を描くときもgmt plotを用います。


  • gmt plot -Sa2.0 -W1,black -Gyellow << END
    • 直線や記号を描きます!
    • -Sa2.0 : 直径2.0cmを描いてください!
    • -W1,black : 線の太さは1ポイントで、黒色にしてください!
    • -Gyellow 星の中身をyellowで塗りつぶしてください!
    • << END : 星を描く座標は次の行からENDが現れるところまでです!

というわけで最後にリースを付けます。円形は-Scで描けます。

#!/bin/bash
gmt begin christmas_tree png
    gmt basemap -JX15 -R0/100/0/100 -Bagf -BWSne+t"Christmas_Tree"
    gmt plot -L -W1,black -Ggreen << END
50 90
30 70
35 70
10 40
90 40
65 70
70 70
50 90
END
    gmt plot -L -W1,Black -Gbrown << END
40 40
40 20
60 20
60 40
END
    gmt plot -Sa2.0 -W1,black -Gyellow << END
50 90
END
    gmt plot -Sc1.0 -W0.05,black -Gred << END
40 65
END
    gmt plot -Sc1.0 -W0.05,black -Gblue << END
60 50
END
gmt end

完成です!


  • gmt plot -Sc1.0 -W0.05,black -Gred << END

    • 直線や記号を描きます!
    • -Sa2.0 : 直径1.0cmの円を描いてください!
    • -W1,black : 線の太さは1ポイントで、黒色にしてください!
    • -Gred 円の中身をredで塗りつぶしてください!
    • << END : 円を描く座標は次の行からENDが現れるところまでです!
  • gmt plot -Sc1.0 -W0.05,black -Gblue << END

    • 直線や記号を描きます!
    • -Sa2.0 : 直径1.0cmの円を描いてください!
    • -W1,black : 線の太さは1ポイントで、黒色にしてください!
    • -Gblue 円の中身をblueで塗りつぶしてください!
    • << END : 円を描く座標は次の行からENDが現れるところまでです!

どうでしょうか?ちゃんと付いてこられましたか?
gmt basemapgmt plot もGMTの基礎的なコマンドです。必ず覚えるようにしましょう!

コメント

スポンサーリンク