【发布时间】:2012-05-15 11:41:16
【问题描述】:
我有一个 3D 散点图,它在其中一个平面上为每个日期绘制 2 个点。我已经问过about how to draw a LINE between every pair of points,并收到了我很感激的答案。我现在想要的是绘制一个 BAR 或 RECTANGLE 来连接点,而不仅仅是一条线。
我尝试使用 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()
【问题讨论】:
标签: python matplotlib mplot3d