Why Z has to be 2-dimensional for 3d plotting in matplotlib
up vote
1
down vote
favorite
I am trying to plot 3d Surface plots
using code from this site using matplotlib:
X,Y and Z are obtained as below:
from math import pi
from numpy import cos, meshgrid
alpha = 0.7
phi_ext = 2 * pi * 0.5
def flux_qubit_potential(phi_m, phi_p):
return 2 + alpha - 2 * cos(phi_p)*cos(phi_m) - alpha * cos(phi_ext - 2*phi_p)
phi_m = linspace(0, 2*pi, 100)
phi_p = linspace(0, 2*pi, 100)
X,Y = meshgrid(phi_p, phi_m)
Z = flux_qubit_potential(X, Y).T
And 3d plotting is done with following code:
from mpl_toolkits.mplot3d.axes3d import Axes3D
fig = plt.figure(figsize=(14,6))
# `ax` is a 3D-aware axis instance, because of the projection='3d' keyword argument to add_subplot
ax = fig.add_subplot(1, 2, 1, projection='3d')
p = ax.plot_surface(X, Y, Z, rstride=4, cstride=4, linewidth=0)
# surface_plot with color grading and color bar
ax = fig.add_subplot(1, 2, 2, projection='3d')
p = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)
cb = fig.colorbar(p, shrink=0.5)
However, if I replace X,Y and Z by my x,y,z 3d data (sample give below), there is an error that Z has to be 2 dimensional
. How can I plot with usual x,y,z values, as following:
x y z
0 12 0 0.1
1 13 1 0.8
2 14 3 1.0
3 16 4 1.2
4 18 4 0.7
python matplotlib 3d
add a comment |
up vote
1
down vote
favorite
I am trying to plot 3d Surface plots
using code from this site using matplotlib:
X,Y and Z are obtained as below:
from math import pi
from numpy import cos, meshgrid
alpha = 0.7
phi_ext = 2 * pi * 0.5
def flux_qubit_potential(phi_m, phi_p):
return 2 + alpha - 2 * cos(phi_p)*cos(phi_m) - alpha * cos(phi_ext - 2*phi_p)
phi_m = linspace(0, 2*pi, 100)
phi_p = linspace(0, 2*pi, 100)
X,Y = meshgrid(phi_p, phi_m)
Z = flux_qubit_potential(X, Y).T
And 3d plotting is done with following code:
from mpl_toolkits.mplot3d.axes3d import Axes3D
fig = plt.figure(figsize=(14,6))
# `ax` is a 3D-aware axis instance, because of the projection='3d' keyword argument to add_subplot
ax = fig.add_subplot(1, 2, 1, projection='3d')
p = ax.plot_surface(X, Y, Z, rstride=4, cstride=4, linewidth=0)
# surface_plot with color grading and color bar
ax = fig.add_subplot(1, 2, 2, projection='3d')
p = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)
cb = fig.colorbar(p, shrink=0.5)
However, if I replace X,Y and Z by my x,y,z 3d data (sample give below), there is an error that Z has to be 2 dimensional
. How can I plot with usual x,y,z values, as following:
x y z
0 12 0 0.1
1 13 1 0.8
2 14 3 1.0
3 16 4 1.2
4 18 4 0.7
python matplotlib 3d
What do you mean by 'my x,y,z 3d data'? There is no reference to any such thing anywhere in your code.
– Thierry Lathuille
Nov 11 at 8:24
I have added a sample of my data above.
– rnso
Nov 11 at 9:03
Concerning the "why?", Why does pyplot.contour() require Z to be a 2D array?. I would be very much inclined to close this as duplicate of Simplest way to plot 3d surface given 3d points unless the question makes clear why it isn't.
– ImportanceOfBeingErnest
Nov 11 at 12:08
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I am trying to plot 3d Surface plots
using code from this site using matplotlib:
X,Y and Z are obtained as below:
from math import pi
from numpy import cos, meshgrid
alpha = 0.7
phi_ext = 2 * pi * 0.5
def flux_qubit_potential(phi_m, phi_p):
return 2 + alpha - 2 * cos(phi_p)*cos(phi_m) - alpha * cos(phi_ext - 2*phi_p)
phi_m = linspace(0, 2*pi, 100)
phi_p = linspace(0, 2*pi, 100)
X,Y = meshgrid(phi_p, phi_m)
Z = flux_qubit_potential(X, Y).T
And 3d plotting is done with following code:
from mpl_toolkits.mplot3d.axes3d import Axes3D
fig = plt.figure(figsize=(14,6))
# `ax` is a 3D-aware axis instance, because of the projection='3d' keyword argument to add_subplot
ax = fig.add_subplot(1, 2, 1, projection='3d')
p = ax.plot_surface(X, Y, Z, rstride=4, cstride=4, linewidth=0)
# surface_plot with color grading and color bar
ax = fig.add_subplot(1, 2, 2, projection='3d')
p = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)
cb = fig.colorbar(p, shrink=0.5)
However, if I replace X,Y and Z by my x,y,z 3d data (sample give below), there is an error that Z has to be 2 dimensional
. How can I plot with usual x,y,z values, as following:
x y z
0 12 0 0.1
1 13 1 0.8
2 14 3 1.0
3 16 4 1.2
4 18 4 0.7
python matplotlib 3d
I am trying to plot 3d Surface plots
using code from this site using matplotlib:
X,Y and Z are obtained as below:
from math import pi
from numpy import cos, meshgrid
alpha = 0.7
phi_ext = 2 * pi * 0.5
def flux_qubit_potential(phi_m, phi_p):
return 2 + alpha - 2 * cos(phi_p)*cos(phi_m) - alpha * cos(phi_ext - 2*phi_p)
phi_m = linspace(0, 2*pi, 100)
phi_p = linspace(0, 2*pi, 100)
X,Y = meshgrid(phi_p, phi_m)
Z = flux_qubit_potential(X, Y).T
And 3d plotting is done with following code:
from mpl_toolkits.mplot3d.axes3d import Axes3D
fig = plt.figure(figsize=(14,6))
# `ax` is a 3D-aware axis instance, because of the projection='3d' keyword argument to add_subplot
ax = fig.add_subplot(1, 2, 1, projection='3d')
p = ax.plot_surface(X, Y, Z, rstride=4, cstride=4, linewidth=0)
# surface_plot with color grading and color bar
ax = fig.add_subplot(1, 2, 2, projection='3d')
p = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)
cb = fig.colorbar(p, shrink=0.5)
However, if I replace X,Y and Z by my x,y,z 3d data (sample give below), there is an error that Z has to be 2 dimensional
. How can I plot with usual x,y,z values, as following:
x y z
0 12 0 0.1
1 13 1 0.8
2 14 3 1.0
3 16 4 1.2
4 18 4 0.7
python matplotlib 3d
python matplotlib 3d
edited Nov 11 at 11:15
asked Nov 11 at 8:03
rnso
11.4k134092
11.4k134092
What do you mean by 'my x,y,z 3d data'? There is no reference to any such thing anywhere in your code.
– Thierry Lathuille
Nov 11 at 8:24
I have added a sample of my data above.
– rnso
Nov 11 at 9:03
Concerning the "why?", Why does pyplot.contour() require Z to be a 2D array?. I would be very much inclined to close this as duplicate of Simplest way to plot 3d surface given 3d points unless the question makes clear why it isn't.
– ImportanceOfBeingErnest
Nov 11 at 12:08
add a comment |
What do you mean by 'my x,y,z 3d data'? There is no reference to any such thing anywhere in your code.
– Thierry Lathuille
Nov 11 at 8:24
I have added a sample of my data above.
– rnso
Nov 11 at 9:03
Concerning the "why?", Why does pyplot.contour() require Z to be a 2D array?. I would be very much inclined to close this as duplicate of Simplest way to plot 3d surface given 3d points unless the question makes clear why it isn't.
– ImportanceOfBeingErnest
Nov 11 at 12:08
What do you mean by 'my x,y,z 3d data'? There is no reference to any such thing anywhere in your code.
– Thierry Lathuille
Nov 11 at 8:24
What do you mean by 'my x,y,z 3d data'? There is no reference to any such thing anywhere in your code.
– Thierry Lathuille
Nov 11 at 8:24
I have added a sample of my data above.
– rnso
Nov 11 at 9:03
I have added a sample of my data above.
– rnso
Nov 11 at 9:03
Concerning the "why?", Why does pyplot.contour() require Z to be a 2D array?. I would be very much inclined to close this as duplicate of Simplest way to plot 3d surface given 3d points unless the question makes clear why it isn't.
– ImportanceOfBeingErnest
Nov 11 at 12:08
Concerning the "why?", Why does pyplot.contour() require Z to be a 2D array?. I would be very much inclined to close this as duplicate of Simplest way to plot 3d surface given 3d points unless the question makes clear why it isn't.
– ImportanceOfBeingErnest
Nov 11 at 12:08
add a comment |
2 Answers
2
active
oldest
votes
up vote
1
down vote
This is because, in my understanding, to draw a surface you need to form a polygon mesh. To draw a 3d surface, you need to have small squares, for example, on the xy-plane and then have 1 corresponding z value for all the x-y points. The smaller the area of the square means finer mesh-grid and better resolution(smooth-looking surface.) Now if you have an arbitrary set of xyz points, how matplotlib can determine which surface to draw. That is why a mesh is required. You can of course plot 3d scatter or line plots with your data.
Is there any way I can plot x,y,z values as a mesh, wireframe or surface?
– rnso
Nov 11 at 11:19
Difficult because you can then, in theory, have 2 data points and could plot a surface which will have the same problem when you try to interpolate. This is essentially an interpolation in 3d. So you will then have a non-smooth surface with not a nice triangulation(or any tessellation) . Anyway you can do that stackoverflow.com/questions/12423601/… ( the 2nd answer)
– anotherone
Nov 11 at 11:27
check this for the doc: matplotlib.org/api/_as_gen/…
– anotherone
Nov 11 at 11:29
add a comment |
up vote
1
down vote
In the documentation you will find that x
, y
and z
need to a 2D array. For the coordinates x
and y
you will need to use numpy.meshgrid
as you show in the first piece of code. This creates a 2D array for each coordinate where x
and y
are constant along the other direction and vary on its own direction.
With respect to z
, this also needs to be a 2D array since Axes3D.surface_plot
maps each element of the 2D array z
with the 2D grid defined by x
and y
.
Hence, when you use your own x
, y
and z
make sure that you use numpy.meshgrid
for x
and y
and, then, define z = f(x,y) (e.g. the function flux_qubit_potential
you show).
Edit:
After OP's comment, is clear that the desired output is a plot where the function g
is g = f(x,y,z). This would mean that g
is a 3D array in the end. To do this in terms of iso-surfaces have a look at these answers.
By this approach, I will not be using my z values. How do I incorporate my z values?
– rnso
Nov 11 at 11:13
So isz
a coordinate? The code you show is to plot z = f(x,y). Not a function, sayg
to which is g = f(x,y,z).
– b-fg
Nov 11 at 11:16
No, in my data, z is value along z-axis (just as x and y are values for corresponding axes).
– rnso
Nov 11 at 11:17
Ok, then you need another function, notAxes3D.surface_plot
. Give me a sec and I will point you on the right direction.
– b-fg
Nov 11 at 11:18
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
This is because, in my understanding, to draw a surface you need to form a polygon mesh. To draw a 3d surface, you need to have small squares, for example, on the xy-plane and then have 1 corresponding z value for all the x-y points. The smaller the area of the square means finer mesh-grid and better resolution(smooth-looking surface.) Now if you have an arbitrary set of xyz points, how matplotlib can determine which surface to draw. That is why a mesh is required. You can of course plot 3d scatter or line plots with your data.
Is there any way I can plot x,y,z values as a mesh, wireframe or surface?
– rnso
Nov 11 at 11:19
Difficult because you can then, in theory, have 2 data points and could plot a surface which will have the same problem when you try to interpolate. This is essentially an interpolation in 3d. So you will then have a non-smooth surface with not a nice triangulation(or any tessellation) . Anyway you can do that stackoverflow.com/questions/12423601/… ( the 2nd answer)
– anotherone
Nov 11 at 11:27
check this for the doc: matplotlib.org/api/_as_gen/…
– anotherone
Nov 11 at 11:29
add a comment |
up vote
1
down vote
This is because, in my understanding, to draw a surface you need to form a polygon mesh. To draw a 3d surface, you need to have small squares, for example, on the xy-plane and then have 1 corresponding z value for all the x-y points. The smaller the area of the square means finer mesh-grid and better resolution(smooth-looking surface.) Now if you have an arbitrary set of xyz points, how matplotlib can determine which surface to draw. That is why a mesh is required. You can of course plot 3d scatter or line plots with your data.
Is there any way I can plot x,y,z values as a mesh, wireframe or surface?
– rnso
Nov 11 at 11:19
Difficult because you can then, in theory, have 2 data points and could plot a surface which will have the same problem when you try to interpolate. This is essentially an interpolation in 3d. So you will then have a non-smooth surface with not a nice triangulation(or any tessellation) . Anyway you can do that stackoverflow.com/questions/12423601/… ( the 2nd answer)
– anotherone
Nov 11 at 11:27
check this for the doc: matplotlib.org/api/_as_gen/…
– anotherone
Nov 11 at 11:29
add a comment |
up vote
1
down vote
up vote
1
down vote
This is because, in my understanding, to draw a surface you need to form a polygon mesh. To draw a 3d surface, you need to have small squares, for example, on the xy-plane and then have 1 corresponding z value for all the x-y points. The smaller the area of the square means finer mesh-grid and better resolution(smooth-looking surface.) Now if you have an arbitrary set of xyz points, how matplotlib can determine which surface to draw. That is why a mesh is required. You can of course plot 3d scatter or line plots with your data.
This is because, in my understanding, to draw a surface you need to form a polygon mesh. To draw a 3d surface, you need to have small squares, for example, on the xy-plane and then have 1 corresponding z value for all the x-y points. The smaller the area of the square means finer mesh-grid and better resolution(smooth-looking surface.) Now if you have an arbitrary set of xyz points, how matplotlib can determine which surface to draw. That is why a mesh is required. You can of course plot 3d scatter or line plots with your data.
answered Nov 11 at 11:12
anotherone
397317
397317
Is there any way I can plot x,y,z values as a mesh, wireframe or surface?
– rnso
Nov 11 at 11:19
Difficult because you can then, in theory, have 2 data points and could plot a surface which will have the same problem when you try to interpolate. This is essentially an interpolation in 3d. So you will then have a non-smooth surface with not a nice triangulation(or any tessellation) . Anyway you can do that stackoverflow.com/questions/12423601/… ( the 2nd answer)
– anotherone
Nov 11 at 11:27
check this for the doc: matplotlib.org/api/_as_gen/…
– anotherone
Nov 11 at 11:29
add a comment |
Is there any way I can plot x,y,z values as a mesh, wireframe or surface?
– rnso
Nov 11 at 11:19
Difficult because you can then, in theory, have 2 data points and could plot a surface which will have the same problem when you try to interpolate. This is essentially an interpolation in 3d. So you will then have a non-smooth surface with not a nice triangulation(or any tessellation) . Anyway you can do that stackoverflow.com/questions/12423601/… ( the 2nd answer)
– anotherone
Nov 11 at 11:27
check this for the doc: matplotlib.org/api/_as_gen/…
– anotherone
Nov 11 at 11:29
Is there any way I can plot x,y,z values as a mesh, wireframe or surface?
– rnso
Nov 11 at 11:19
Is there any way I can plot x,y,z values as a mesh, wireframe or surface?
– rnso
Nov 11 at 11:19
Difficult because you can then, in theory, have 2 data points and could plot a surface which will have the same problem when you try to interpolate. This is essentially an interpolation in 3d. So you will then have a non-smooth surface with not a nice triangulation(or any tessellation) . Anyway you can do that stackoverflow.com/questions/12423601/… ( the 2nd answer)
– anotherone
Nov 11 at 11:27
Difficult because you can then, in theory, have 2 data points and could plot a surface which will have the same problem when you try to interpolate. This is essentially an interpolation in 3d. So you will then have a non-smooth surface with not a nice triangulation(or any tessellation) . Anyway you can do that stackoverflow.com/questions/12423601/… ( the 2nd answer)
– anotherone
Nov 11 at 11:27
check this for the doc: matplotlib.org/api/_as_gen/…
– anotherone
Nov 11 at 11:29
check this for the doc: matplotlib.org/api/_as_gen/…
– anotherone
Nov 11 at 11:29
add a comment |
up vote
1
down vote
In the documentation you will find that x
, y
and z
need to a 2D array. For the coordinates x
and y
you will need to use numpy.meshgrid
as you show in the first piece of code. This creates a 2D array for each coordinate where x
and y
are constant along the other direction and vary on its own direction.
With respect to z
, this also needs to be a 2D array since Axes3D.surface_plot
maps each element of the 2D array z
with the 2D grid defined by x
and y
.
Hence, when you use your own x
, y
and z
make sure that you use numpy.meshgrid
for x
and y
and, then, define z = f(x,y) (e.g. the function flux_qubit_potential
you show).
Edit:
After OP's comment, is clear that the desired output is a plot where the function g
is g = f(x,y,z). This would mean that g
is a 3D array in the end. To do this in terms of iso-surfaces have a look at these answers.
By this approach, I will not be using my z values. How do I incorporate my z values?
– rnso
Nov 11 at 11:13
So isz
a coordinate? The code you show is to plot z = f(x,y). Not a function, sayg
to which is g = f(x,y,z).
– b-fg
Nov 11 at 11:16
No, in my data, z is value along z-axis (just as x and y are values for corresponding axes).
– rnso
Nov 11 at 11:17
Ok, then you need another function, notAxes3D.surface_plot
. Give me a sec and I will point you on the right direction.
– b-fg
Nov 11 at 11:18
add a comment |
up vote
1
down vote
In the documentation you will find that x
, y
and z
need to a 2D array. For the coordinates x
and y
you will need to use numpy.meshgrid
as you show in the first piece of code. This creates a 2D array for each coordinate where x
and y
are constant along the other direction and vary on its own direction.
With respect to z
, this also needs to be a 2D array since Axes3D.surface_plot
maps each element of the 2D array z
with the 2D grid defined by x
and y
.
Hence, when you use your own x
, y
and z
make sure that you use numpy.meshgrid
for x
and y
and, then, define z = f(x,y) (e.g. the function flux_qubit_potential
you show).
Edit:
After OP's comment, is clear that the desired output is a plot where the function g
is g = f(x,y,z). This would mean that g
is a 3D array in the end. To do this in terms of iso-surfaces have a look at these answers.
By this approach, I will not be using my z values. How do I incorporate my z values?
– rnso
Nov 11 at 11:13
So isz
a coordinate? The code you show is to plot z = f(x,y). Not a function, sayg
to which is g = f(x,y,z).
– b-fg
Nov 11 at 11:16
No, in my data, z is value along z-axis (just as x and y are values for corresponding axes).
– rnso
Nov 11 at 11:17
Ok, then you need another function, notAxes3D.surface_plot
. Give me a sec and I will point you on the right direction.
– b-fg
Nov 11 at 11:18
add a comment |
up vote
1
down vote
up vote
1
down vote
In the documentation you will find that x
, y
and z
need to a 2D array. For the coordinates x
and y
you will need to use numpy.meshgrid
as you show in the first piece of code. This creates a 2D array for each coordinate where x
and y
are constant along the other direction and vary on its own direction.
With respect to z
, this also needs to be a 2D array since Axes3D.surface_plot
maps each element of the 2D array z
with the 2D grid defined by x
and y
.
Hence, when you use your own x
, y
and z
make sure that you use numpy.meshgrid
for x
and y
and, then, define z = f(x,y) (e.g. the function flux_qubit_potential
you show).
Edit:
After OP's comment, is clear that the desired output is a plot where the function g
is g = f(x,y,z). This would mean that g
is a 3D array in the end. To do this in terms of iso-surfaces have a look at these answers.
In the documentation you will find that x
, y
and z
need to a 2D array. For the coordinates x
and y
you will need to use numpy.meshgrid
as you show in the first piece of code. This creates a 2D array for each coordinate where x
and y
are constant along the other direction and vary on its own direction.
With respect to z
, this also needs to be a 2D array since Axes3D.surface_plot
maps each element of the 2D array z
with the 2D grid defined by x
and y
.
Hence, when you use your own x
, y
and z
make sure that you use numpy.meshgrid
for x
and y
and, then, define z = f(x,y) (e.g. the function flux_qubit_potential
you show).
Edit:
After OP's comment, is clear that the desired output is a plot where the function g
is g = f(x,y,z). This would mean that g
is a 3D array in the end. To do this in terms of iso-surfaces have a look at these answers.
edited Nov 11 at 11:51
answered Nov 11 at 11:11
b-fg
1,47811422
1,47811422
By this approach, I will not be using my z values. How do I incorporate my z values?
– rnso
Nov 11 at 11:13
So isz
a coordinate? The code you show is to plot z = f(x,y). Not a function, sayg
to which is g = f(x,y,z).
– b-fg
Nov 11 at 11:16
No, in my data, z is value along z-axis (just as x and y are values for corresponding axes).
– rnso
Nov 11 at 11:17
Ok, then you need another function, notAxes3D.surface_plot
. Give me a sec and I will point you on the right direction.
– b-fg
Nov 11 at 11:18
add a comment |
By this approach, I will not be using my z values. How do I incorporate my z values?
– rnso
Nov 11 at 11:13
So isz
a coordinate? The code you show is to plot z = f(x,y). Not a function, sayg
to which is g = f(x,y,z).
– b-fg
Nov 11 at 11:16
No, in my data, z is value along z-axis (just as x and y are values for corresponding axes).
– rnso
Nov 11 at 11:17
Ok, then you need another function, notAxes3D.surface_plot
. Give me a sec and I will point you on the right direction.
– b-fg
Nov 11 at 11:18
By this approach, I will not be using my z values. How do I incorporate my z values?
– rnso
Nov 11 at 11:13
By this approach, I will not be using my z values. How do I incorporate my z values?
– rnso
Nov 11 at 11:13
So is
z
a coordinate? The code you show is to plot z = f(x,y). Not a function, say g
to which is g = f(x,y,z).– b-fg
Nov 11 at 11:16
So is
z
a coordinate? The code you show is to plot z = f(x,y). Not a function, say g
to which is g = f(x,y,z).– b-fg
Nov 11 at 11:16
No, in my data, z is value along z-axis (just as x and y are values for corresponding axes).
– rnso
Nov 11 at 11:17
No, in my data, z is value along z-axis (just as x and y are values for corresponding axes).
– rnso
Nov 11 at 11:17
Ok, then you need another function, not
Axes3D.surface_plot
. Give me a sec and I will point you on the right direction.– b-fg
Nov 11 at 11:18
Ok, then you need another function, not
Axes3D.surface_plot
. Give me a sec and I will point you on the right direction.– b-fg
Nov 11 at 11:18
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53246874%2fwhy-z-has-to-be-2-dimensional-for-3d-plotting-in-matplotlib%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
What do you mean by 'my x,y,z 3d data'? There is no reference to any such thing anywhere in your code.
– Thierry Lathuille
Nov 11 at 8:24
I have added a sample of my data above.
– rnso
Nov 11 at 9:03
Concerning the "why?", Why does pyplot.contour() require Z to be a 2D array?. I would be very much inclined to close this as duplicate of Simplest way to plot 3d surface given 3d points unless the question makes clear why it isn't.
– ImportanceOfBeingErnest
Nov 11 at 12:08