Matplotlib20本ノック
15, 3次元グラフ
次のデータを使って3次元に点をプロットしてみてください。
こちらのデータはz軸(真上)方向に螺旋の様な動きをしながら伸びていくものとなっています。
theta=np.linspace(-4*np.pi,4*np.pi,100)
z=np.linspace(-2,2,100)
r=z**2+1
x=r*np.sin(theta)
y=r*np.cos(theta)
3Dグラフを表示するためのモジュールをインストールします。
from mpl_toolkits.mplot3d import Axes3D
そして問題文にあるデータを定義します。
その後の記述は初めてみる物が結構あるので
3Dグラフ表示する際に必要なものなんだなぁ~ぐらいに
見ておきました。
theta=np.linspace(-4*np.pi,4*np.pi,100)
z=np.linspace(-2,2,100)
r=z**2+1
x=r*np.sin(theta)
y=r*np.cos(theta)
fig = plt.figure()
ax = fig.gca(projection='3d')
とりあえず、下記のコードを記述して実行したら
上図のようなデータの無い3Dの土台のようなものが出て来たので
この2行は3dグラフ表示する時の決まり文句なんだなぁ
というのはわかりました。
fig = plt.figure()
ax = fig.gca(projection='3d')
実際に用意されたデータを引数に入れるとグラフが表示されます。
ax.plot(x,y,z, label='3D Curve')
ax.legend()
plt.show
16, 円グラフ
以下に用意したデータを使って円グラフを作成してください。
x=np.array([100,200,300,400,500])
labels=["Apple","Banana","Orange"."Grape","Strawberry"]
colors=['red','yellow','orange','purple','pink']
与えられたデータをもとにグラフを作成します。
plt.pie() 円グラフの作成
x=np.array([100,200,300,400,500])
labels=["Apple","Banana","Orange","Grape","Strawberry"]
colors=['red','yellow','orange','purple','pink']
plt.pie(x, labels=labels, colors=colors)
plt.show()
このままでもいいのですが、データのはじめのAppleが
中途半端な位置から始まつていて、さらに反時計周りになっているので
そこを修正します。
時計回り counterclock=False
Apple頂点始まり startangle=90
x=np.array([100,200,300,400,500])
labels=["Apple","Banana","Orange","Grape","Strawberry"]
colors=['red','yellow','orange','purple','pink']
plt.pie(x, labels=labels, colors=colors,counterclock=False,startangle=90)
plt.show()
コメント