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