Matlab log2 图尺度
Matlab log2 graph scale
我一直试图将我的图形轴设置为 log2 比例,但图形上出现了一些很奇怪的东西。第一个数据 63 出现在 x-scale 的开头和结尾,由于某种原因第一个点没有出现。此外,这些点并不完全集中在 x-ticks...你知道为什么吗?
在此先感谢您的帮助!!!
clear all; clc;
%% Vectors
freq=[63 125 250 500 1000 2000 4000 8000 16000]
logfreq=log2(freq);
Lp1=[93.9 93.9 93.8 93.8 93.8 93.6 93.3 91.8 87.8]
Lp2=[93.9 93.9 93.8 93.8 94 94.1 94.4 94.6 95.3]
Lp3=[93.9 93.9 93.9 93.8 94.1 94.4 95.2 97.2 100.9]
%% Plot
figure
plot(log2(freq),Lp1,'+-','linewidth',1.7)
hold on; grid on;
plot(log2(freq),Lp2,'+-','linewidth',1.7)
plot(log2(freq),Lp3,'+-','linewidth',1.7)
set(gca,'fontsize',20)
set (gca, 'XTickLabel', logfreq);
set(gca,'XTickLabel',
{'63','125','250','500','1000','2000','4000','8000','16000'})
xlabel('Frequency [Hz]','fontsize',20)
ylabel('Pressure Level [dB]','fontsize',20)
leg=legend({'Sin correcion','Campo libre','Incidencia aleatoria'},'fontsize',18)
这是图:
你想要
set(gca,'XTick',logfreq);
而不是set(gca,'XTickLabel',logfreq)
由于您的代码不正确,63 出现在开始和结束处,因为有(不正确的)10 个 x 刻度位置,但您只指定了 9 个标签,因此重复了第一个标签。 (如果您只指定了 8,那么将重复前 2 个,等等)
我一直试图将我的图形轴设置为 log2 比例,但图形上出现了一些很奇怪的东西。第一个数据 63 出现在 x-scale 的开头和结尾,由于某种原因第一个点没有出现。此外,这些点并不完全集中在 x-ticks...你知道为什么吗?
在此先感谢您的帮助!!!
clear all; clc;
%% Vectors
freq=[63 125 250 500 1000 2000 4000 8000 16000]
logfreq=log2(freq);
Lp1=[93.9 93.9 93.8 93.8 93.8 93.6 93.3 91.8 87.8]
Lp2=[93.9 93.9 93.8 93.8 94 94.1 94.4 94.6 95.3]
Lp3=[93.9 93.9 93.9 93.8 94.1 94.4 95.2 97.2 100.9]
%% Plot
figure
plot(log2(freq),Lp1,'+-','linewidth',1.7)
hold on; grid on;
plot(log2(freq),Lp2,'+-','linewidth',1.7)
plot(log2(freq),Lp3,'+-','linewidth',1.7)
set(gca,'fontsize',20)
set (gca, 'XTickLabel', logfreq);
set(gca,'XTickLabel',
{'63','125','250','500','1000','2000','4000','8000','16000'})
xlabel('Frequency [Hz]','fontsize',20)
ylabel('Pressure Level [dB]','fontsize',20)
leg=legend({'Sin correcion','Campo libre','Incidencia aleatoria'},'fontsize',18)
这是图:
你想要
set(gca,'XTick',logfreq);
而不是set(gca,'XTickLabel',logfreq)
由于您的代码不正确,63 出现在开始和结束处,因为有(不正确的)10 个 x 刻度位置,但您只指定了 9 个标签,因此重复了第一个标签。 (如果您只指定了 8,那么将重复前 2 个,等等)