Subplot VAR variables in one figure

I have generated a m-dimensional (m=5) sample of T observations, from a VAR model of lag order p. I want to generate one figure with m subplots, each for every variable in the sample. I have found and copied this code, but an error occurs: the first times, problem with axes properties occurred ("--- is not a valid axes line style", something like this), now it just crashes. How could I do what I would like to do?
Y=Y(:,p+1:end); %Y is the mXT matrix containing the m-dimensional sample.
FS=15;
LW=2;
gr_size2=ceil(m/3);
figure(1)
set(0,'DefaultAxesColorOrder',[0 0 1],...
'DefaultAxesLineStyleOrder','-|-|-')
set(gcf,'Color',[1 1 1])
set(gcf,'defaultaxesfontsize',FS)
for k=1:m
subplot(gr_size2,2,k)
plot(Y(k,:),'b','Linewidth',LW)
title(sprintf('Y_%d',k))
end

4 个评论

Your gr_size2 value is 2, so you are creating a 2x2 subplot grid and trying to plot 5 subplots with k=1:5 ? What is the error you are getting, it would help if you can paste the error message.
Error using axes
The value '---' is not a valid line style.
Error in subplot (line 591)
ax = axes('Units', 'normalized', 'Position', position, ...
VBBV
VBBV 2020-8-10
编辑:VBBV 2020-8-11
The argument of the default line style is not correct
Try using only '-' without any | dashes
Try using only '-' without any | dashes
It should work

请先登录,再进行评论。

回答(2 个)

I just tried your code with a dummy matrix, values and see no error regarding linestyle. It would help if you can attach your matrix.
Z = peaks;
m = 6;
gr_size2=ceil(m/3);
figure(1)
set(0,'DefaultAxesColorOrder',[0 0 1],...
'DefaultAxesLineStyleOrder','-|-|-');
set(gcf,'Color',[1 1 1])
set(gcf,'defaultaxesfontsize',FS)
for k=1:6
subplot(3,3,k)
plot(Z(k,:),'b','Linewidth',LW)
title(sprintf('Y_%d',k))
end
The error is caused due to call of axes after setting the 'defaultAxesLineStyleOrder' to -|-|-.
This issue is fixed from 2019b.
As a workaround if you are using release earlier R2019b you may use below command
set(0,'defaultAxesColorOrder',[0 0 1],'defaultAxesLineStyleOrder','-');
Also, in the question mentioned above, you wanted to create m-subplot but in the code your are not plotting m-subplot this may affect the result.
Refer the subplot documentation

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by