Connecting two points in a 3D scatter plot

matplotlib, matplotlib-3d, mplot3d, python

Solution

Draw a line segment between those points:

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()

Produces:

Problem

In the code below, how do I create lines connecting each pair of scatter plots (i.e. linking the green circle to the yellow arrowhead) created by the two lines of code towards the end just before the .show() instruction? ``` 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') ax.scatter(dates, zaxisvalues0, highs, color = 'g', marker = "o") ax.scatter(dates, zaxisvalues0, lows, color = 'y', marker = "^") matplotlib.pyplot.show() ```

Original source

Related problems