はじめに
matplotlibのaxes_enter_event、axes_leave_eventを使ってaxesの背景色を変えて、マウスオーバーすると答えが出る九九表を作成する。
コード
解説
モジュールのインポート
jupyter labでインタラクティブなマウスイベントを利用するために、冒頭で%matplotlib widgetとする。
%matplotlib widgetを使えるようにする方法については下記記事で説明した。
バージョン
データの生成
九九表のデータについてはブロードキャストで配列データを作成して、flattenにより、1次元配列に形状変換することで作成した。
マウスイベントの設定
マウスイベントは下記記事と同様のものを用いた。
enter_axes(event)はaxes内にマウスが入ったときの動作であり、event.inaxes.patch.set_facecolor(‘w’)で背景色を白にする。leave_axes(event)はaxesからマウスが出たときのイベントであり、event.inaxes.patch.set_facecolor(‘k’)により背景色を黒とする。
表の表示
axは(9,9)の形状をしているので、ax.ravel()で1次元化する。
[ax[i].set_facecolor(‘k’) for i in range(len(ax))]で全ての図の背景色を黒とする。
[ax[i].xaxis.set_major_locator(ticker.NullLocator()) for i in range(len(ax))]により、目盛りを非表示する。y軸も同様に処理する。
[ax[i].text(0.5, 0.5, str(kuku[i]), ha=’center’,va=’center’, transform=ax[i].transAxes) for i in range(len(ax))]によりそれぞれの図の中央に九九の値を表示する。黒背景に黒字として、同化して見えないようにする。
set_ylabelとset_titleにより、左と上にある数字を表示する。
マウスイベントの有効化
mpl_connectでマウスイベントを有効にすると九九表が表示される。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)
コメント