更改轮廓中的轴刻度(MatLab)

y1aodyip  于 2023-02-23  发布在  Matlab
关注(0)|答案(1)|浏览(178)

我有下面的代码,它产生下面的图表。不幸的是,我不能分享这个数据。

time=data.time(); 
tim=find(time>0.0 & time<1.4) 
time(tim)

pow=mean(data.powspctrm,1);
pow=squeeze(pow);
pow(isnan(pow))=0;
pow2=pow(:,:);
Min = min(pow,[],'omitnan');
Min=min(Min);
Max = max(pow,[],'omitnan');
Max=max(Max);
contourf(time(tim),data.freq,pow2(:,tim),40,'linecolor','none');caxis([Min Max]);
colbar = colorbar
caxis([-.31 .31])
colbar.TickLabels = -30:10:30
xtickvec = -0.1:0.2:1.3
set(gca,'XTick',xtickvec)

我一直在尝试改变y轴的刻度直到30,就像我改变x轴的刻度一样,先ytickvec = 5:5:30,然后set(gca,'YTick',ytickvec),但是什么也没做,有什么建议吗?

uqzxnwby

uqzxnwby1#

1.-XTickYTick通过调用gca时产生的句柄可用。

figure(1);下降后立即使用gca工作正常。
这样,您就可以更改XTickYTick,例如:

close all;clear all;clc

x = linspace(-2*pi,2*pi);
y = linspace(0,4*pi);
[X,Y] = meshgrid(x,y);
Z = sin(X) + cos(Y);

figure(1);
ax1=gca
[M,hc]=contourf(X,Y,Z,10)

ax1.XTick
ax1.YTick

他们来了

=
    -6    -4    -2     0     2     4     6
 =
     0     2     4     6     8    10    12

读和写,这意味着您还可以写入ax1.XTickax1.YTick

**2.-**同样适用于contourf生产的手柄

这个问题已经得到了回答,但是在处理轮廓时,通常需要包含在contourf返回的句柄中的数据,因此我添加了以下注解:
使用以下格式调用时提供的句柄可以轻松修改contourcontourf属性

[M,hc]=contourf(..)

hc是生成的contourf的句柄
不,您可以执行以下操作

hc.LineWidth = 3;

hc.LineWidth = .8;
hc.LineStyle='--'

3.-使用句柄时请勿返回直接修改属性输入字段

如果你现在这样做

contourf(X,Y,Z,'--')

现在,您将返回到修改使用contourf生成的轮廓的函数调用中的属性,而不使用句柄。
MATLAB将相应地执行您以这种方式修改的任何内容但是句柄hc将被删除。
要么坚持不使用句柄进行局部属性修改(代码行附近),要么使用句柄并避免在同一函数调用中直接修改属性。
如果打算再次使用该句柄,您确实可以根据需要多次再次生成hc

相关问题