Connecting two points in a 3D scatter plot in Python and matplotlib

前端 未结 1 1723
一生所求
一生所求 2021-02-05 09:17

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 t

1条回答
  •  野的像风
    2021-02-05 10:17

    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:

    enter image description here

    0 讨论(0)
提交回复
热议问题