Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project!

## Re: [Matplotlib-users] 3D bar chart help!

 Re: [Matplotlib-users] 3D bar chart help! From: Benjamin Root - 2011-10-06 18:24:53 Attachments: Message as HTML ```On Wed, Oct 5, 2011 at 7:15 PM, Andrew C wrote: > Hello List Server, > > I am trying to take a raster dataset, getting the center points, and the z > value and trying to graph it in a 3D bar chart quite unsuccessfully. > > My data looks like this: > XCoord = [1,2,3,4] > YCoord = [1,2,3,4] > ZCoord = [12,14,4,26] > > Those are the known locations, but there will be lots of more points when > using actual data that forms a continuous surface over a small area. > > How do I create a 3D bar chart to represent the Z Value at each of those > locations? I saw in the help that you need to create a mesh grid, but I > don't understand how to do that. The help documents are vague on what the > X,Y,Z values formats are as well. > The call signature of bar3d is: bar3d(x, y, z, dx, dy, dz, color='b', kwargs**) x, y, and z must be 1-D arrays of equivalent shapes. The values in these arrays represent the location of a corner point of the bottom of each bar being plotted. This is why you see a "+ 0.25" to shift the bar over so that the bars (should be) centered, because the bars are 0.5 wide. The width of the bars are given by dx, dy and the height given by dz. For the data you have given, I would do the following: from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np fig = plt.figure() ax = fig.gca(projection='3d') XCoord = np.array([1,2,3,4]) YCoord = np.array([1,2,3,4]) ZCoord = np.array([12,14,4,26]) ax.bar3d(XCoord - 0.25, YCoord - 0.25, [0, 0, 0, 0], 0.5, 0.5, ZCoord) plt.show() Cheers! Ben Root ```

 [Matplotlib-users] 3D bar chart help! From: Andrew C - 2011-10-06 00:15:49 Attachments: Message as HTML ```Hello List Server, I am trying to take a raster dataset, getting the center points, and the z value and trying to graph it in a 3D bar chart quite unsuccessfully. My data looks like this: XCoord = [1,2,3,4] YCoord = [1,2,3,4] ZCoord = [12,14,4,26] Those are the known locations, but there will be lots of more points when using actual data that forms a continuous surface over a small area. How do I create a 3D bar chart to represent the Z Value at each of those locations? I saw in the help that you need to create a mesh grid, but I don't understand how to do that. The help documents are vague on what the X,Y,Z values formats are as well. ```
 Re: [Matplotlib-users] 3D bar chart help! From: Benjamin Root - 2011-10-06 18:24:53 Attachments: Message as HTML ```On Wed, Oct 5, 2011 at 7:15 PM, Andrew C wrote: > Hello List Server, > > I am trying to take a raster dataset, getting the center points, and the z > value and trying to graph it in a 3D bar chart quite unsuccessfully. > > My data looks like this: > XCoord = [1,2,3,4] > YCoord = [1,2,3,4] > ZCoord = [12,14,4,26] > > Those are the known locations, but there will be lots of more points when > using actual data that forms a continuous surface over a small area. > > How do I create a 3D bar chart to represent the Z Value at each of those > locations? I saw in the help that you need to create a mesh grid, but I > don't understand how to do that. The help documents are vague on what the > X,Y,Z values formats are as well. > The call signature of bar3d is: bar3d(x, y, z, dx, dy, dz, color='b', kwargs**) x, y, and z must be 1-D arrays of equivalent shapes. The values in these arrays represent the location of a corner point of the bottom of each bar being plotted. This is why you see a "+ 0.25" to shift the bar over so that the bars (should be) centered, because the bars are 0.5 wide. The width of the bars are given by dx, dy and the height given by dz. For the data you have given, I would do the following: from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np fig = plt.figure() ax = fig.gca(projection='3d') XCoord = np.array([1,2,3,4]) YCoord = np.array([1,2,3,4]) ZCoord = np.array([12,14,4,26]) ax.bar3d(XCoord - 0.25, YCoord - 0.25, [0, 0, 0, 0], 0.5, 0.5, ZCoord) plt.show() Cheers! Ben Root ```