Python 無料で独習 Pythonでデータ可視化(Matplotlib)を勉強するならまずこの動画 09

Python
この記事は約4分で読めます。

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()

コメント

タイトルとURLをコピーしました