I seem to be having troubles to understand the very basic usage of functions for 3D graphs such as surface (and Plots and PyPlot). See the screenshot.
In particular, I am quite confused by the fact that surface plots comes with the x1 and x2 axes (or x and y, if you like) exchanged. I can solve my problem for the time being, just be transposing the z_data array, but I am still not quite happy about it because I do not understand the reason for such behavior of the software. The code seems to be pretty clear. Nevertheless, I suspect the culprit is on line 3 where I am using list comprehension to build the 2D array of function values. Any explanation and recommendation of the right “Julian” way to write such code for a beginner?