gnuplotでのプロット例 : 山手線の各駅を東京駅からの距離で並べて軸線上に表すグラフ
このブログではgnuplotの機能を解説する記事を書いて来ましたが、実際にグラフをプロットする場合についても紹介していくことにします。
「山手線の各駅を東京駅からの距離で並べて軸線上に表すグラフ」
について作って行くことにします。
必要なデータとしては、
x軸は東京駅からの距離(km)を表しています。東京駅はスタートなのでラベルを頭一つ高くしています。その他の駅名のラベルは2段に分けてますが、これは単に見やすくするためです。
1列目が東京駅からの距離(km)、2列目がラベルの段分けに用いる数値、3列目が駅名としています。
gnuplotのコマンドは以下のようにしました。
プロット方法はlabels(ラベル)プロットともう一つ、"impulses"というプロットを用いています。始めに出したグラフから分かるように、impulsesプロットでx軸から各ラベルに伸びる線を描いています。
(impulsesプロットは、 y = 0 からデータで指定された値まで垂直線を伸ばすプロットになります)
labelsプロットは基本的には、x, y座標に加えラベルに用いるテキストを指定してプロットします。"u 1:2:3" がそれを表しています("u" は "using"の略)。その他はテキストの回転(rotate by)だったり、テキスト位置(left)だったり、位置の微調整(offset)だったりします。ラベルのフォントの大きさ(font ",11")もここで指定しています。
gnuplot関連のブログ記事
軸線上にラベルを表すグラフの作成
今回は「山手線の各駅を東京駅からの距離で並べて軸線上に表すグラフ」
について作って行くことにします。
必要なデータとしては、
- 山手線(JR東日本)の各駅の駅名
- 各駅の東京駅からの距離(線路に沿った距離)
グラフ
長々と解説していくのもなんなので、始めに出来上がったグラフを貼っておきます。x軸は東京駅からの距離(km)を表しています。東京駅はスタートなのでラベルを頭一つ高くしています。その他の駅名のラベルは2段に分けてますが、これは単に見やすくするためです。
解説
プロットに用いるデータファイル(yamanoteline001.dat)の中身は以下のように作成しました。0.0 3 東京駅
1.3 2 神田駅
2.0 1 秋葉原駅
3.0 2 御徒町駅
︙
1列目が東京駅からの距離(km)、2列目がラベルの段分けに用いる数値、3列目が駅名としています。
gnuplotのコマンドは以下のようにしました。
gnuplot> unset key
gnuplot> unset ytics
gnuplot> set style textbox opaque
gnuplot> plot [-2: 36][0:4] 'yamanoteline001.dat' u 1:2 w impulses lc 'dark-orange', '' u 1:2:3 w labels boxed rotate by 70 left offset 0,0.4 font ",11"
プロット方法はlabels(ラベル)プロットともう一つ、"impulses"というプロットを用いています。始めに出したグラフから分かるように、impulsesプロットでx軸から各ラベルに伸びる線を描いています。
(impulsesプロットは、 y = 0 からデータで指定された値まで垂直線を伸ばすプロットになります)
labelsプロットは基本的には、x, y座標に加えラベルに用いるテキストを指定してプロットします。"u 1:2:3" がそれを表しています("u" は "using"の略)。その他はテキストの回転(rotate by)だったり、テキスト位置(left)だったり、位置の微調整(offset)だったりします。ラベルのフォントの大きさ(font ",11")もここで指定しています。
まとめ
今回は横軸に距離を取りましたが、これを時間で取るなどすればいろいろ応用できるかと思います。また縦軸を単にラベルを見やすくするために用いましたが、これも意味のある数値を用いれば表現の幅が広がるでしょう。gnuplot関連のブログ記事
コメント
コメントを投稿