matplotlibでグラフを出力しましたが、そのグラフにマウスのカーソルをあわせる事によって、カーソルの合わせられた点の座標を出したいです。
python
1# 散布図の書き方 2# https://qiita.com/supersaiakujin/items/ef85dd247cefdfbd2e2a 3 4import pandas as pd 5import numpy as np 6import matplotlib.pyplot as plt 7import datetime 8import matplotlib.dates as mdates 9%matplotlib inline 10 11url = "" 12 13data = pd.read_csv(url) 14 15# datetimeへの置換 2018/10/27 20:00:00 16data['Timestamp'] = pd.to_datetime(data['Timestamp'], format = '%Y/%m/%d %H:%M') 17 18# データを変数に入れる 19x = data['Timestamp'] 20 21y = data.iloc[:,2] 22 23 24# 骨子づくり 25fig = plt.figure() 26 27ax = fig.add_subplot(1,1,1) 28 29 30 31# formatを設定(この場合は日付) 32xfmt = mdates.DateFormatter("%m/%d") 33 34 35# 間隔を日数にしている 36xloc = mdates.DayLocator() 37 38 39# 上の処理を反映させる 40ax.xaxis.set_major_locator(xloc) 41ax.xaxis.set_major_formatter(xfmt) 42 43# 軸の最大と最小を決定 44ax.set_xlim(datetime.datetime(2018,10,22), datetime.datetime(2018,10,28)) 45 46## excel上で標準となっている値を如何に日付データに変換するのか 47 48 49# print(data["Timestamp"].dtype) 50# ax.scatter(x,y) 51 52# プロットを作図 53ax.plot(x,y) 54 55 56# y軸の目盛り設定(場所に注意) 57ax.set_yticks([-80, -40, 0]) 58ax.set_yticklabels(['unko','oshikko','baba']) 59#ax.set_xticklabels([]) 60 61# 軸に名前をつける 62ax.set_title('first scatter plot') 63ax.set_xlabel('x') 64ax.set_ylabel('y') 65 66# grid線を引く 67ax.grid(True) 68 69 70fig.show()
以下のon click関数等を利用してみましたが、うまくいきませんでした。
python
1# def onclick(event): 2# print('%s click: button=%d, x=%d, y=%d, xdata=%f, ydata=%f' % 3# ('double' if event.dblclick else 'single', event.button, 4# event.x, event.y, event.xdata, event.ydata)) 5 6# cid = fig.canvas.mpl_connect('button_press_event', onclick)
回答1件
あなたの回答
tips
プレビュー