x 轴的对数刻度
Logaritmic scale in x-axis
我有以下代码:
S = [100 200 500 1000 10000];
H = [0.14 0.15 0.17 0.19 0.28;0.14 0.16 0.18 0.20 0.29;0.15 0.17 0.19 0.21 0.31;0.16 0.17 0.20 0.22 0.32;0.23 0.22 0.28 0.30 0.44;0.23 0.23 0.29 0.3 0.5;0.33 0.32 0.4 0.42 0.63;0.32 0.31 0.39 0.40 0.61;0.23 0.23 0.30 0.30 0.50];
for i = 1:9
hold on
plot(S, H(i,:));
legend('GHM01','GHM02','GHM03','GHM04','GHM05','GHM06','GHM07','GHM08','GHM09'); %legend not correctly
axis([100 10000 0.1 1])
end
set(gca,'xscale','log')
x 轴看起来像这样:
因为 S 值彼此相差很远,所以我使用了对数 x 轴(和线性 y 轴)。
我在轴上有 5 个值(见 S),我只希望这 5 个值在 x 轴上可见,值之间 等距间距 。我该怎么做呢?或者是否有更好的替代方法来显示我的 x 轴,而不是对数刻度?
如果您希望 X 轴刻度距离相等,尽管它们不是(既不是线性也不是对数刻度)那么您基本上将此轴视为分类轴,然后它应该得到序数临时值(比如 1:5
)来确定它们之间的距离。
下面是您上面的评论的快速实现:
S = {'100' '200' '500' '1000' '10000'};
H = [0.14 0.15 0.17 0.19 0.28;...
0.14 0.16 0.18 0.20 0.29;
0.15 0.17 0.19 0.21 0.31;
0.16 0.17 0.20 0.22 0.32;
0.23 0.22 0.28 0.30 0.44;
0.23 0.23 0.29 0.3 0.5;
0.33 0.32 0.4 0.42 0.63;
0.32 0.31 0.39 0.40 0.61;
0.23 0.23 0.30 0.30 0.50];
f = figure;
plot(1:length(S),H);
f.Children.XTick = 1:length(S);
f.Children.XTickLabel = S;
TMHO 这是解决这个问题最直接的方法 ;)
我有以下代码:
S = [100 200 500 1000 10000];
H = [0.14 0.15 0.17 0.19 0.28;0.14 0.16 0.18 0.20 0.29;0.15 0.17 0.19 0.21 0.31;0.16 0.17 0.20 0.22 0.32;0.23 0.22 0.28 0.30 0.44;0.23 0.23 0.29 0.3 0.5;0.33 0.32 0.4 0.42 0.63;0.32 0.31 0.39 0.40 0.61;0.23 0.23 0.30 0.30 0.50];
for i = 1:9
hold on
plot(S, H(i,:));
legend('GHM01','GHM02','GHM03','GHM04','GHM05','GHM06','GHM07','GHM08','GHM09'); %legend not correctly
axis([100 10000 0.1 1])
end
set(gca,'xscale','log')
x 轴看起来像这样:
因为 S 值彼此相差很远,所以我使用了对数 x 轴(和线性 y 轴)。 我在轴上有 5 个值(见 S),我只希望这 5 个值在 x 轴上可见,值之间 等距间距 。我该怎么做呢?或者是否有更好的替代方法来显示我的 x 轴,而不是对数刻度?
如果您希望 X 轴刻度距离相等,尽管它们不是(既不是线性也不是对数刻度)那么您基本上将此轴视为分类轴,然后它应该得到序数临时值(比如 1:5
)来确定它们之间的距离。
下面是您上面的评论的快速实现:
S = {'100' '200' '500' '1000' '10000'};
H = [0.14 0.15 0.17 0.19 0.28;...
0.14 0.16 0.18 0.20 0.29;
0.15 0.17 0.19 0.21 0.31;
0.16 0.17 0.20 0.22 0.32;
0.23 0.22 0.28 0.30 0.44;
0.23 0.23 0.29 0.3 0.5;
0.33 0.32 0.4 0.42 0.63;
0.32 0.31 0.39 0.40 0.61;
0.23 0.23 0.30 0.30 0.50];
f = figure;
plot(1:length(S),H);
f.Children.XTick = 1:length(S);
f.Children.XTickLabel = S;
TMHO 这是解决这个问题最直接的方法 ;)