xlabel not visible on plot

Ben Abbott bpabbott at mac.com
Tue Jun 30 06:14:00 CDT 2009


On Jun 29, 2009, at 10:09 PM, Lukas Reichlin wrote:

>>> Dear Octave Community,
>>>
>>> How can I make xlabel('Frequency [rad/s]') visible on a plot? The  
>>> plot
>>> window seems to be too small. I'm using Octave 3.2.0 on Mac OS X
>>> 10.5.7 with GnuPlot 4.2.5 and AquaTerm 1.0.1. Thanks for any help.
>>>
>>> Regards,
>>> Lukas
>>>
>>>
>>> EXAMPLE M-FILE:
>>>
>>>
>>> % Heat Exchanger
>>>
>>>
>>> % Tabula Rasa
>>> clear all;
>>> close all;
>>> clc;
>>>
>>>
>>> % Physical Parameters
>>> m_star_1 = 0.5;  % kg/s
>>> m_star_2 = 0.2;  % kg/s
>>> V_1 = 0.01;      % m^3
>>> V_2 = 0.02;      % m^3
>>>
>>> rho = 1000;      % kg/m^3
>>> c = 4200;        % J/(kg K)
>>> Ar = 2;          % m^2
>>> k = 2000;        % W/(m^2 K)
>>>
>>>
>>> % Control-Oriented Parameters
>>> tau_1 = rho * V_1 * c / ( m_star_1 * c  +  k * Ar );
>>> tau_2 = rho * V_2 * c / ( m_star_2 * c  +  k * Ar );
>>>
>>> sigma_1 = k * Ar / ( m_star_1 * c  +  k * Ar );
>>> sigma_2 = k * Ar / ( m_star_2 * c  +  k * Ar );
>>>
>>> beta_1 = m_star_1 * c / ( m_star_1 * c  +  k * Ar );
>>> beta_2 = m_star_2 * c / ( m_star_2 * c  +  k * Ar );
>>>
>>>
>>> % System Matrices
>>> A = [      -1/tau_1    sigma_1/tau_1 ;
>>>      sigma_2/tau_2         -1/tau_2 ];
>>>
>>> B = [ beta_1/tau_1               0 ;
>>>                 0    beta_2/tau_2 ];
>>>
>>> C = [ 1    0 ;
>>>      0    1 ];
>>>
>>> D = [ 0    0 ;
>>>      0    0 ];
>>>
>>>
>>> % State Space Form
>>> sys = ss(A,B,C,D);
>>>
>>>
>>> % Stability
>>> eigw = eig(A)
>>>
>>>
>>> % Controllability
>>> co = ctrb(A,B);
>>> r_co = rank(co)
>>>
>>>
>>> % Observability
>>> ob = obsv(A,C);
>>> r_ob = rank(ob)
>>>
>>>
>>> % Singular Value Plot
>>> w = logspace(-3, 1, 1000);   % rad/s
>>>
>>> for k = 1 : size(w, 2)
>>> 	
>>> 	% Frequency Response Matrix
>>> 	P = C * inv(i * w(k) * eye(size(A))  -  A) * B  +  D;
>>> 	
>>> 	% Singular Value Decomposition
>>> 	sigma = svd(P);
>>> 	sigma_max(k) = max(sigma);
>>> 	sigma_min(k) = min(sigma);
>>> end
>>>
>>> figure(1)
>>> semilogx(w, 20*log10(sigma_max), w, 20*log10(sigma_min))
>>> xlabel('Frequency [rad/s]')
>>> ylabel('Singular Values [dB]')
>>> grid on
>>>
>>
>> Octave uses gnuplot to render its figures. Gnuplot's output looks a  
>> bit different depending upon the "terminal" you use. I expect you  
>> are currently using Aquaterm.
>>
>> You might try using x11 (x11 should be in your utilities folder) ...
>>
>> close all
>> setenv ("GNUTERM", "x11")
>> plot (1:10)
>> xlabel ("my xlabel")
>>
>> or (if you have it installed) try wxt
>>
>> close all
>> setenv ("GNUTERM", "wxt")
>> plot (1:10)
>> xlabel ("my xlabel")
>>
>> The one sure way to get what you want is to change the default  
>> position of the plot box.
>>
>> close all
>> set (0, "defaultaxesposition", [0.13, 0.13, 0.775, 0.795])
>> plot (1:10)
>> xlabel ("my xlabel")
>>
>> Ben
>
>
> Yes, AquaTerm is my default terminal because it has the convenient  
> feature of saving plots as eps-files.
> set (0, "defaultaxesposition", [0.13, 0.17, 0.775, 0.755])
> did the job. Unfortunately, plotting was broken after the next  
> launch of Octave. Now I get the following error every time I attempt  
> to run my m-file:
>
> error: invalid use of script in index expression
> error: called from:
> error:   /Applications/Octave/Octave.app/Contents/Resources/share/ 
> octave/3.2.0/m/plot/gca.m at line 45, column 9
> error:   /Applications/Octave/Octave.app/Contents/Resources/share/ 
> octave/3.2.0/m/plot/__plt_get_axis_arg__.m at line 63, column 4
> error:   /Applications/Octave/Octave.app/Contents/Resources/share/ 
> octave/3.2.0/m/plot/semilogx.m at line 32, column 18
> error:   /Users/lukas/hex4.m at line 80, column 1
>
> Line 80 at hex4.m is the semilogx() command.
>
> Regards,
> Lukas
>
> BTW: As far as I can remember, Octave 3.0.5 didn't have this axes  
> issue since plot windows were remarkably larger.

I had been unaware the aquaterm could save its windows contents as eps  
(pdf too).

In any event, line 45 of gca.m is (should be) ...

	h = axes ();

What happens if you type

	clear all
	close all
	axes
	plot (1:10)

also, what does your path look like (just type "path")?

Ben








More information about the Help-octave mailing list