4

我想在 Octave 中创建 cos(x) 和 sin(x) 的图。我已经学会了如何更改诸如 xlabel 和 xlim 之类的东西,但是我找不到如何从具有数字(例如 1、2、3)更改为具有 pi 项(-pi、-pi/2 等)。如果你能解释我如何做到这一点,我也将不胜感激。这是一张我想做的照片,以防我的英语让你感到困惑。

在此处输入图像描述

4

3 回答 3

4

在 Matlab 中,您可以执行以下操作:

set(gca,'XTick',-pi:pi/2:pi)
set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})

正如你在这里看到的:http: //www.mathworks.com/help/matlab/creating_plots/setting-axis-parameters.html

这也应该在 Octave 中工作。

此外,我还没有对此进行测试,但要获得您可以尝试的实际 Pi 符号:

set(gca,'XTickLabel',{'-p','-p/2','0','p/2','p'}, 'fontname','symbol')

否则,您可以尝试查看此 Matlab FEX 提交是否适合您: http: //www.mathworks.com/matlabcentral/fileexchange/15986

于 2013-10-15T12:29:57.337 回答
2

这是一个老话题,但这里有一个带有一点上下文的 Octave 解决方案。

将@Dan 的输入与@Chimalis 的修订相结合,以下脚本适用于Windows 上的Octave 4.4.1 和Linux 上的5.2.0。特别注意 xtick、xticks、xticklabel 和 xticklabels 的使用。

x = linspace(-3*pi,3*pi);
figure;
hold on;
subplot(2,1,1);
y = cos(x);
plot(x,y)
ylabel('cosine');
xticks([-3*pi -2*pi -pi 0 pi 2*pi 3*pi]);
xticklabels({'-3\pi','-2\pi','-\pi','0','\pi','2\pi','3\pi'});
yticks([-1 -0.866 -0.707 -0.5 0 0.5 0.707 0.866 1]);
grid on;
sp_h2 = subplot(2,1,2);
z = sin(x);
plot(x,z)
sp_h2_pos = get(sp_h2, 'Position');
sp_h2_pos_new = sp_h2_pos - [0 0 sp_h2_pos(3)/2 0];
set(sp_h2, 'Position', sp_h2_pos_new);
ylabel('sine')
xlim([0 2*pi]);
h=get (gcf, "currentaxes");
set(h,"xtick",0:pi/2:2*pi);
set(h,"xticklabel",['0';'\pi/2';'\pi';'3\pi/2';'2\pi']);
于 2021-08-10T01:02:48.843 回答
1

对于 π 符号你只需要写 \pi。

set(gca,'XTick',-pi:pi/2:pi) set(gca,'XTickLabel',{'-\pi','-\pi/2','0','\pi/2','\pi'})

于 2018-01-29T17:31:04.373 回答