# How do I adjust the size of axes labels and figure titles in plots? I've been experimenting around with the following code:

from sage.calculus.desolvers import desolve_odeint
y,dy = var('y,dy');
g    = 9.8;
l    = 1;
f    = [dy,-g/l*cos(y)];
v    = [y,dy];
t    = srange(0,5,0.01);
ci   = [0,0];
sol  = desolve_odeint(f,ci,t,v,rtol=1e-15, atol=1e-10,h0=1e-4,hmax=1e-2,hmin=1e-6,mxstep=10000)
p    = line(zip(t,sol[:,0]),title=r"$\frac{d^{2}\theta}{dt^2} = -\frac{g}{l} \cos{\theta}$",axes_labels=[r"$t$",r"$\theta$"]);
p2   = line(zip(t,sol[:,1]));
p2  += text(r"$\frac{d\theta}{dt}$",(-0.5,0),fontsize=27);
p2  += text(r"$t(s)$",(5,0.5),fontsize=20);
p.show()


which gives this plot: As you can see the axes labels and title of the figure are insanely small (or at least in my opinion). I'd like the axes labels to be 20 pt and the figure title to be 30 pt. How do I do this?

edit retag close merge delete

Sort by » oldest newest most voted

You can do

p.fontsize(30)


Unfortunately we don't seem to have the title font size set capability exposed from matplotlib, though surely this is possible too.

more

Hi,

The issue of "insanely small" axes labels has been solved in ticket #18004 and integrated in Sage 6.7.beta2. So, if you do not want to wait for the next main Sage release (6.7, in a few weeks probably), you may consider upgrading to the latest Sage 6.7.beta (beta5 at the time of this writing).

Eric.

more

1
1

Sage 6.7 is out, so you may use it to fix the size of the axes labels. Within Sage 6.7, there is indeed a new option for 2D graphics: axes_labels_size, which sets the relative size of axes labels with respect to tick marks labels. The default value is 1.6, which results in larger axes labels.

the ticket is still open? after four years, and priority "major"? I want to use this, too.

Unfortunately, "major" is basically the same as "default". Since open source projects tend to go with what "scratches the itch" of developers, it does depend on whether someone with know-how, time, and interest converges on a given ticket.