I want to generate the lines, which I get from an array in 3D.
Here is the code:
VecStart_x = [0,1,3,5] VecStart_y = [2,2,5,5] VecStart_z = [0,1,1,5] VecEnd_x = [1,2,-1,6] VecEnd_y = [3,1,-2,7] VecEnd_z =[1,0,4,9] import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.plot([VecStart_x ,VecEnd_x],[VecStart_y,VecEnd_y],[VecStart_z,VecEnd_z]) plt.show() Axes3D.plot()
I get that error:
ValueError: third arg must be a format string
I guess, you want to plot 4 lines. Then you can try
for i in range(4): ax.plot([VecStart_x[i], VecEnd_x[i]], [VecStart_y[i],VecEnd_y[i]],zs=[VecStart_z[i],VecEnd_z[i]])
As @Nicolas have suggested, do have a look at the matplotlib gallery.
The gallery is a great starting point to find out examples:
There is an example of 3d line plot here:
You see that you need to pass to the ax.plot function 3 vectors. You are actually passing list of lists. I don't know what you mean by the Start and End sublist, but the following line should work :
ax.plot(VecStart_x + VecEnd_x, VecStart_y + VecEnd_y, VecStart_z +VecEnd_z)
Here I sum the sublist (concatenation) in order to have only one list by axis.