Matplotlib20本ノック
17, GUIウィジェット
以下のコードで作成した散布図上にカーソルを持っていくとカーソルの座標が表示されるようにしてください。
ただし、MatplotlibのGUIウィジットはJupyter Notebook上では使えないため、
この問題に関してはターミナルでPythonインタプリタを起動した状態で確認してください。
fig = plt.figure(figsize=(8,6))
ax = fig.add_subplot(111,facecolor='#FFFFCC')
x, y =4*(np.random.rand(2,100) - .5)
ax.plot(x,y,'o')
ax.set_xlim(-2,2)
ax.set_ylim(-2,2)
plt.show()
ヒント
今回のMatplotlibのウィジットを使うためにmatoplotlib.widgetsモジュールの中Cursorクラスを利用します。
とりあえずは問題文通りのグラフを表示させます。
fig = plt.figure(figsize=(8,6))
ax = fig.add_subplot(111,facecolor='#FFFFCC')
x, y =4*(np.random.rand(2,100) - .5)
ax.plot(x,y,'o')
ax.set_xlim(-2,2)
ax.set_ylim(-2,2)
plt.show()
ここで新たなモジュールをインポートします。
from matplotlib.widgets import Cursor
そしてカーソルの設定である
cursor に引数を入れていきます。
from matplotlib.widgets import Cursor
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=(8,6))
ax = fig.add_subplot(111,facecolor='#FFFFCC')
x, y =4*(np.random.rand(2,100) - .5)
ax.plot(x,y,'o')
ax.set_xlim(-2,2)
ax.set_ylim(-2,2)
cursor =Cursor(ax,useblit=True ,color='red' , linewidth=2)
plt.show()
このコードをpython3のターミナル上で起動すると
カーソルが動くグラフを表示させることができます。
18,演習問題1
以下の2つのグラフを1つのグラフ(figsize=(9,6))として縦に2つ並べた形に修正してください。
グラフ1
x = np.arange(10)
y = np.random.randint(-10,10,10)
plt.plot(x,y)
plt.title('Result')
plt.xlabel('x axis')
plt.ylabel('y axis')
グラフ2
x = ['Sam','John','Kevin','Adam']
y = np.random.randint(0, 200 , 4)
plt.bar(x,y)
まず、表示する領域の設定をします。
fig = plt.figure(figsize=(9,6))
二つ同時にグラフを表示するので上のグラフのx y を x1 y1 とします。
以前に複数のグラフを同時に表示するときに学んだ
2行 1列 1個目のグラフということで211をsdd_subplot()の引数にいれます。
fig = plt.figure(figsize=(9,6))
x1 = np.arange(10)
y1 = np.random.randint(-10,10,10)
ax1 = fig.add_subplot(211)
ax1.set_title('Result')
ax1.set_xlabel('x axis')
ax1.set_ylabel('y axis')
ax1.plot(x1,y1)
x2 = ['Sam','John','Kevin','Adam']
y2 = np.random.randint(0, 200 , 4)
ax2 = fig.add_subplot(212)
ax2.bar(x2,y2)
plt.show()
コメント