如何在 Matlab 中每十年以对数图形式写入文本
How to write in a logarithmic plot a text in each decade in Matlab
我需要在对数图的底部或顶部每个十年写一个不同的数字。
我将这些数字放在一个数组中 N
。有没有一种方法可以在不为每个十年编写 for
循环的情况下自动执行该过程?
每个十进制有9个数,如果我有两三个十进制,怎么写:
for i = 1:18
text(x(i), y, num2str(N(i)));
end
其中,y
永远不会改变,N(i)
是我的号码,x(i)
他们的位置 我正在寻找 。
我想在橙色框(或顶部)中放入黑点的数量。
编辑:我可能误解了你的问题。一种解释是使用 xticks
(解释如下)。另一个是放置文字。
如果您想做的只是将文本放在不同的位置,这很简单,因为 text
也接受矢量。
x = 0:1:5;
y = x;
plot(x,y);
text(x+0.25,0.5*ones(6,1),{'One','Two','Three','Four','Five','Six'})
产量:
除非您特别想放置标签,否则我建议您使用 xticks。
例如:
y = 0:1:5;
x = exp(-y.^2);
semilogx(x,y);
set(gca,'XTickLabel',{'One','Two','Three','Four','Five','Six'})
给出:
我需要在对数图的底部或顶部每个十年写一个不同的数字。
我将这些数字放在一个数组中 N
。有没有一种方法可以在不为每个十年编写 for
循环的情况下自动执行该过程?
每个十进制有9个数,如果我有两三个十进制,怎么写:
for i = 1:18
text(x(i), y, num2str(N(i)));
end
其中,y
永远不会改变,N(i)
是我的号码,x(i)
他们的位置 我正在寻找 。
编辑:我可能误解了你的问题。一种解释是使用 xticks
(解释如下)。另一个是放置文字。
如果您想做的只是将文本放在不同的位置,这很简单,因为 text
也接受矢量。
x = 0:1:5;
y = x;
plot(x,y);
text(x+0.25,0.5*ones(6,1),{'One','Two','Three','Four','Five','Six'})
产量:
除非您特别想放置标签,否则我建议您使用 xticks。
例如:
y = 0:1:5;
x = exp(-y.^2);
semilogx(x,y);
set(gca,'XTickLabel',{'One','Two','Three','Four','Five','Six'})
给出: