Matlab:如何检索plotyy的标题、xlabel、ylabel和字体?

3

我有一些数字需要更改:

  1. 标题
  2. x轴和y轴(包括字体大小和内容)
  3. 刻度尺寸。

这是我通常的做法:

title('new title ');
xlhand = get(gca,'xlabel');
set(xlhand,'string','xlabel','fontsize',13);
ylhand = get(gca,'ylabel');
set(ylhand,'string','ylabel','fontsize',13);
set(gca,'FontSize',13);

通常情况下它运作良好。但是,当我想编辑使用ploty函数制作的图时,它就无法工作了。唯一的影响是我的右边ylabel会改变。
我知道现在有两个ylabels,所以更改它们不会像普通图形那样容易。然而,我惊讶的是我不能更改xlabels和标题。为什么会这样呢?
plotxy函数相关的上述代码有什么问题?我该如何使其工作?文档中没有任何相关信息。
我正在使用Matlab R2015a。 编辑:是的,我指的是plotyy(我的问题中有一个拼写错误)。以下是文档中的示例代码:
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);

figure % new figure
plotyy(x,y1,x,y2) 

1
你是不是想说的是 plotyy 而不是 xyplot 和 plotxy?你能否编辑你的问题,包括生成图表本身的示例代码? - Matt
1
@Sardar_Usama 嗯,OP谈到了两个ylabels,这意味着必须有两个y轴。引用的Simscape函数plotxy可能只有其中一个,如此处所示。因此它在某种程度上没有意义...因此,当OP(1)澄清(2)包括用于创建图形的代码时,这将是很好的。 - Matt
2个回答

2

如果您查看文档,您会发现plotyy可以返回轴句柄。因此,首先使用该选项获取句柄:

Ax = plotyy(x,y1,x,y2);

现在,Ax(1) 是左坐标轴的句柄,Ax(2) 是右坐标轴的句柄。因此,您可以更改它们各自的属性,例如:
set(Ax(1),'FontSize',13);

出于我不完全理解的原因,设置标签是通过以下方式完成的

set(get(Ax(1),'YLabel'),'String','Whatever you want...');

编辑:

如果您已经绘制了数据,您可以使用以下方法检索句柄:

Ax = findobj(gcf,'type','axes')

我表达得不够清楚,对此我感到抱歉。我之前绘制了我的数据并将其保存在一个*.fig文件中。现在我想要更改列出的选项,但我不想重新绘制图表。 - user2738748
谢谢,这很有帮助。那么标题和x轴呢?简单的*title('my title')*不起作用,我不明白为什么。 - user2738748
1
尝试使用 title(Ax(1),'This is a title') 来设置标题,使用 ylabel(Ax(1),'Left label') 来设置左标签。对于 x 标签,可以使用 xlabel(Ax(1),'The x-label')。此外,set(Ax,'FontSize',13) 可以直接设置两个轴的字体大小。 - Matt

0

从文档中获取而不使用getset

x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);

figure % new figure
hAx = plotyy(x,y1,x,y2);

title('Multiple Decay Rates')
xlabel('Time (\musec)')

ylabel(hAx(1),'Slow Decay') % left y-axis
ylabel(hAx(2),'Fast Decay') % right y-axis

然后通过改变值来进行更改

xlabel('New label','fontsize',10)
title('New Title','fontsize',10)
ylabel(hAx(2),'Fast Decay','fontsize',20)
hAx(1).FontSize=5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接