3D散布図があり、その平面の1つに、日付ごとに2つの点をプロットします。点のペアごとに線を引く方法を聞いてみたところ、ありがたい答えが返ってきました。私が今欲しいのは、単なる線ではなく、ポイントを接続するためにBARまたはRECTANGLEを描画することです。
現時点でのプロットは次のようになりますが、バーが軸に固定されているのではなく「フローティング」になっていることを除けば、matplolibのドキュメントの3Dバーデモのプロットに少し似ているようにしたいと思います。
Axes3D.bar
(matplotlibページで説明されているように)使用してみましたが、実際の2つの座標ではなく、各バーに「高さ」を指定する必要があり、その高さは軸に固定されます。
これはコードであり、どんな助けでもありがたいです。
import matplotlib.pyplot
from mpl_toolkits.mplot3d import Axes3D
dates = [20020514, 20020515, 20020516, 20020517, 20020520]
highs = [1135, 1158, 1152, 1158, 1163]
lows = [1257, 1253, 1259, 1264, 1252]
upperLimits = [1125.0, 1125.0, 1093.75, 1125.0, 1125.0]
lowerLimits = [1250.0, 1250.0, 1156.25, 1250.0, 1250.0]
zaxisvalues0= [0, 0, 0, 0, 0]
zaxisvalues1= [1, 1, 1, 1, 1]
zaxisvalues2= [2, 2, 2, 2, 2]
fig = matplotlib.pyplot.figure()
ax = fig.add_subplot(111, projection = '3d')
ax.plot(dates, zaxisvalues1, lowerLimits, color = 'b')
ax.plot(dates, zaxisvalues2, upperLimits, color = 'r')
for i,j,k,h in zip(dates,zaxisvalues0,lows,highs):
ax.plot([i,i],[j,j],[k,h],color = 'g')
ax.scatter(dates, zaxisvalues0, highs, color = 'g', marker = "o")
ax.scatter(dates, zaxisvalues0, lows, color = 'y', marker = "^")
matplotlib.pyplot.show()