Ask Your Question
2

Density plot aspect ratio

asked 2013-10-21 15:23:45 +0100

wlp2 gravatar image

updated 2013-10-21 15:42:03 +0100

Shashank gravatar image

I am trying to make a very high aspect ratio density plot, but I can't seem to manually adjust the aspect ratio, and the automatically generated plot ends up being just a very pretty line. What am I doing wrong? The code I'm using is below. I don't know how to use Markdown to make it look pretty, sorry :(

print("Diffusion length data")
k = 1.381E-023
T = 300
q = 1.602E-019
var('ue')
De(ue) = ue*k*T/q
var('tau')
Le = (tau*10^-9*De)^(1/2)
D = density_plot(Le*10^4, (tau, 0, 3), (ue, 0, 500), cmap="jet")
D.show(aspect_ratio=0.05)
edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2013-10-21 22:14:28 +0100

ppurka gravatar image

updated 2013-10-21 23:24:24 +0100

kcrisman gravatar image

Thanks for reporting. It is a bug in Sage. Opened ticket 15314 to track this.

Update: Proposed fix is in ticket 15315.

Edit by kcrisman - here is what aspect_ratio=0.01 looks like with the proposed fix.

image description

edit flag offensive delete link more

Comments

This is fantastic! I need to add a contour plot, some data points, and axes labels so I have more work to do. I tried to apply the patch according to the directions in the "Reviewing a patch" section of the developer walkthrough, but got an error that says 'abort: failed to synchronize metadata for "sage/plot/graphics.py"'. Is there another way to apply this patch? Can I edit the source myself without large risk of ruining my sage install? As an end-user this is both a little terrifying and awesome to me at the same time.)

wlp2 gravatar imagewlp2 ( 2013-10-22 03:17:59 +0100 )edit

You can try the following to patch it manually and rebuild sage. I will assume that `SAGE_ROOT` is the directory where your sage is installed, i.e., to run sage you need to actually run `SAGE_ROOT/sage`. $ cd SAGE_ROOT/devel/sage $ patch -p1 --dry-run -i /path/to/trac_15315-density_and_matrix_plot_aspect_ratio.patch $ patch -p1 -i /path/to/trac_15315-density_and_matrix_plot_aspect_ratio.patch # If above had no errors $ ../../sage -b # rebuild sage

ppurka gravatar imageppurka ( 2013-10-22 04:21:58 +0100 )edit

That worked perfectly, thanks ppurka! Also thanks kcrisman, you guys responded very quickly.

wlp2 gravatar imagewlp2 ( 2013-10-22 20:16:50 +0100 )edit
0

answered 2013-10-21 22:36:21 +0100

kcrisman gravatar image

updated 2013-10-21 22:43:17 +0100

This is a bug in how we pass aspect ratio in to plots using matplotlib's imshow command, and thank you for finding it; the typical use cases have been square inputs! I've opened Trac 15315 for this. I tried to look for a few workarounds, but the things I tried for accessing the aspect ratio of the underlying mpl figure wouldn't propagate (for the cognoscenti, even doing savefig now doesn't work in Sage).

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2013-10-21 15:23:45 +0100

Seen: 656 times

Last updated: Oct 21 '13