我有一个 3D 散点图,它在其中一个平面上为每个日期绘制 2 个点。我问过如何在每对点之间画一条线,并收到了我很感激的答案。我现在想要的是绘制一个 BAR 或 RECTANGLE 来连接点,而不仅仅是一条线。
这是该图目前的样子,但我希望它看起来有点像matplolib 文档中的 3D 条形演示中的图,除了条形“浮动”而不是锚定到轴上。
我尝试过使用Axes3D.bar
(如 matplotlib 页面上所述),但它希望我为每个条形提供一个“高度”而不是两个实际坐标,并且该高度将锚定到轴上。
这是代码,任何帮助表示赞赏。
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()