# mplot3d grid/axes

Hi all,

I have managed to create a 3d plot with uneven aspect ratio via auto_scale_xyz but I haven’t yet figured out how to fix the grid. If you could give me a pointer I would appreciate it.

http://imagebin.org/index.php?mode=image&id=229196

Thanks,

···

Brian Mingus

Computational Cognitive Neuroscience Lab

1-720-587-9482

Hi all,

I have managed to create a 3d plot with uneven aspect ratio via auto_scale_xyz but I haven’t yet figured out how to fix the grid. If you could give me a pointer I would appreciate it.

http://imagebin.org/index.php?mode=image&id=229196

Thanks,

Brian,

Just today, I submitted a PR that involved extensive fixes to autoscaling in mplot3d. I don’t have the PR number on me, but it should be easy to find on the github page. While I don’t think it will fix much for you, I would be interested to know if it breaks your code.

As for your issues, it is hard to help out without a code sample to see how you got to where you are. Did you happen to use my experimental daspect branch?

Cheers!

Ben Root

···

On Thursday, September 20, 2012, Brian J Mingus wrote:

Hey Ben,

Here is the code I am using to generate this plot, in addition to an example input. It’s basicaIlly a list of lists, where each inner list is a time series. Plotting a 3D time series as a 3D surface rectangle is probably a pretty common problem. It would be awesome if I didn’t have to switch to using rpy + ggplot or even worse, mlabwrap. Thank for any ideas that anyone has!

def ThreeDSurfacePlot(list_of_lists):

plt.clf()

fig = plt.figure()

list_of_lists = Smooth(list_of_lists)

xs = numpy.arange(0,list_of_lists.shape,1)

zs = numpy.arange(0,len(list_of_lists),1)

ax = p3.Axes3D(fig)

X = numpy.meshgrid(xs,zs)

Y = numpy.meshgrid(xs,zs)

Z = list_of_lists

ax.plot_surface(X, Y, Z, cmap=cm.jet, cstride=1, rstride=1)

ax.set_xlabel(“Sequence Elements”)

ax.set_ylabel(“Trial”)

ax.set_zlabel(“Inter-Key-Interval”)

ax.set_xscale

# Set up x ticks

tick_locs_x = range(20)

tick_lbls_x = [‘d’, ‘j’, ‘k’, ‘f’, ‘j’, ‘d’, ‘f’, ‘k’, ‘d’, ‘f’, ‘k’, ‘j’, ‘d’, ‘f’, ‘k’, ‘f’, ‘j’, ‘d’, ‘k’, ‘j’]

plt.xticks(tick_locs_x, tick_lbls_x)

# Set up y (or z?) ticks

tick_locs_y = range(len(list_of_lists))

tick_lbls_y = []

for day in range(len(data[“keylog”])):

day_trial_ctr = 0

for trial in range(len(data[“keylog”][day])):

if len(data[“keylog”][day][trial]) == 20:

if day_trial_ctr % 20 == 0:

tick_lbls_y.append(“Day:” + str(day) + ", Trial: " + str(day_trial_ctr))

else:

tick_lbls_y.append("")

day_trial_ctr += 1

plt.yticks(tick_locs_y, tick_lbls_y, fontsize=10)

ax.auto_scale_xyz([0,20],[0,50],[0,1])

ax.view_init(20,45)

ax.axis(‘tight’)

plt.savefig(subject + “_3d_surface.png”)

if show: plt.show()

print accurateseries[:3]

[[ 0.5 0.5 0.49699092 0.5 0.68226504 0.48422813

0.42276716 0.46813011 0.42340088 0.40479589 0.41090202 0.31301808

0.30782294 0.27784109 0.36982799 0.48932219 0.38784313 0.33056998

0.40356588 0.32964206]

[ 0.5 0.57195497 0.30683708 0.46926498 0.44043994 0.46917915

0.32043695 0.41017413 0.40825605 0.28631306 0.40151811 0.31961489

0.35328102 0.22550416 0.36752486 0.55106211 0.39073801 0.38961005

0.36436582 0.34787703]

[ 0.4480989 0.49201202 0.25450802 0.39503598 0.32998705 0.33187294

0.35646415 0.36470699 0.3162992 0.28596401 0.39307094 0.4239881

0.32525587 0.30294204 0.38540196 0.296211 0.35584903 0.31555796

0.35734415 0.36554003]]

···

On Thu, Sep 20, 2012 at 7:46 PM, Benjamin Root <ben.root@…1304…> wrote:

On Thursday, September 20, 2012, Brian J Mingus wrote:

Hi all,

I have managed to create a 3d plot with uneven aspect ratio via auto_scale_xyz but I haven’t yet figured out how to fix the grid. If you could give me a pointer I would appreciate it.

http://imagebin.org/index.php?mode=image&id=229196

Thanks,

Brian,

Just today, I submitted a PR that involved extensive fixes to autoscaling in mplot3d. I don’t have the PR number on me, but it should be easy to find on the github page. While I don’t think it will fix much for you, I would be interested to know if it breaks your code.

As for your issues, it is hard to help out without a code sample to see how you got to where you are. Did you happen to use my experimental daspect branch?

Cheers!

Ben Root

Brian Mingus