そんなことを改まって書くのも無益なので、
3D、軌跡がColormapに従って変化
するものでも書いてみようかと思う。
3Dグラフは普段使わないので忘れてしまうからというのも、もちろんある。
で結果としてはこんなものだ。
さすがに一枚目のグラフは即座に描画できるけど、
二枚目のグラフは一歩ずつ描画しているのでなかなか時間がかかる。
In [1]:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
In [2]:
N = 2000
R = (np.random.rand(N)*6).astype("int")
x = np.zeros(N)
y = np.zeros(N)
z = np.zeros(N)
x[ R==0 ] = -1; x[ R==1 ] = 1
y[ R==2 ] = -1; y[ R==3 ] = 1
z[ R==4 ] = -1; z[ R==5 ] = 1
x = np.cumsum(x)
y = np.cumsum(y)
z = np.cumsum(z)
In [3]:
plt.figure()
ax = plt.subplot(1,1,1, projection='3d')
ax.plot(x, y, z,alpha=0.6)
ax.scatter(x[-1],y[-1],z[-1])
plt.show()
In [4]:
plt.figure()
ax = plt.subplot(1,1,1, projection='3d')
cm = plt.get_cmap('jet')
ax.set_prop_cycle('color',[cm(1.*i/(x.shape[-1]-1)) for i in range(x.shape[-1]-1)])
for i in range(x.shape[-1]-1):
ax.plot([x[i+1],x[i]], [y[i+1],y[i]], [z[i+1],z[i]],alpha=0.6)
ax.scatter(x[-1],y[-1],z[-1],facecolor=cm(1))
plt.show()