7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

matplotlib ginputについて

Posted at

matplotlibで座標を取得(ミドルクリックで終了)

matplotlibで作成したグラフから、任意の場所をクリックして座標を取得したい。

以下のコードを用いて行った。
やったことは、
・ginputで取得する座標の回数をあらかじめ決めないようにした。
・取得した座標に印をつける。
・印をつけたグラフを保存する。
の3つ。

サンプルコード

import matplotlib.pyplot as plt
import math

# sin波の作成
x = [i for i in range(1, 100)]
y = [math.sin(0.1*i) for i in x]

def main():
    plt.plot(x, y)

    a = plt.ginput(n=-1, mouse_add=1, mouse_pop=3, mouse_stop=2)
    # n=-1でインプットが終わるまで座標を取得
    # mouse_addで座標を取得(左クリック)
    # mouse_popでUndo(右クリック)
    # mouse_stopでインプットを終了する(ミドルクリック)

    for c, d in a:
        print(c, d)
        plt.plot(c, d, "ro") # グラフ上に座標をマークする

    plt.savefig('fig_test.png')
    plt.show()

if __name__ == '__main__':
    main()

実行結果

C:\Users\devel\Anaconda3\lib\site-packages\matplotlib\backend_bases.py:2453: MatplotlibDeprecationWarning: Using default event loop until function specific to this GUI is implemented
  warnings.warn(str, mplDeprecation)
3.27217741935 0.359258536967
6.74959677419 0.579441226974
9.14032258065 0.835329218063
15.4431451613 0.996003072933
21.0939516129 0.823427451036
24.7887096774 0.561588576433

画像

fig_test.png

参考文献

Python-matplotlibで画像の座標を読取る
matplotlib.pyplot.ginput

7
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?