In second figure, when length of arrow is smaller, arrow is drawn from tip instead of base, i.e. instead of •—⟩ , it is like ⟩• where • is the position of (x, y, z). How to fix this? Because then it apparently change data perspective, it looks like a gap in data which is not the case.
Also is there a better way to plot surface with color on each point coming from another data, instead of value of surface point?