标记不同的数字,字体,大小MATLAB

时间:2014-12-11 07:58:18

标签: matlab plot matlab-figure figure

我正在尝试基本复制此图表以供我最后的练习,但我不了解如何更改字体,大小或标记轴。简单地说,我需要从我的代码中完全复制这个图。我需要字体为新罗马字体,尺寸为18,标记大小为8.我如何将代码格式化为此? enter image description here

这是我的代码:

clear
clc

x = linspace(0,2);
y1 = sin(2*pi*x);
y2 = exp(-0.5*2*pi*x).*sin(2*pi*x);


figure
subplot(2,1,1);
hPlot1 = plot(x,y1,'rs');
ylabel('f(t)')
set(gca,'YLim',[-1 2],'YTick',-1:1:2,'XTick',0:.5:2)

subplot(2,1,2);
hPlot2 = plot(x,y2,'k*');
xlabel('Time(s)')
ylabel('g(t)')
set(gca,'YLim',[-0.2,0.6],'YTick',[-0.2,0,0.2,0.4,0.6],'XTick',0:.5:2)

2 个答案:

答案 0 :(得分:4)

以下代码:

%// x = linspace(0,2); %// changed that to respect where the markers are on your example figure 
x = 0:0.1:2 ; 
y1 = sin(2*pi*x);
y2 = exp(-0.5*2*pi*x).*sin(2*pi*x);

figure
h.axtop = subplot(2,1,1) ;
h.plottop = plot(x,y1,'LineStyle','-','Color','r', ...
                    'Marker','s', ...
                    'MarkerEdgeColor','k', ...
                    'MarkerFaceColor','none', ...
                    'MarkerSize',8) ;
set(gca,'YLim',[-1 2],'YTick',-1:1:2,'XTick',0:.5:2)
h.ylbl(1) = ylabel('\itf(t)') ;     %// label is set in "italic" mode with the '\it' tag at the beginning

h.axbot = subplot(2,1,2);
h.plotbot = plot(x,y2,'-ks', ...
                    'Marker','*', ...
                    'MarkerEdgeColor','r', ...
                    'MarkerSize',8) ;
set(gca,'YLim',[-0.2,0.6],'YTick',[-0.2,0,0.2,0.4,0.6],'XTick',0:.5:2)
h.xlbl(1) = xlabel('Time(s)') ;
h.ylbl(2) = ylabel('\itg(t)') ;     %// label is set in "italic" mode with the '\it' tag at the beginning

%// create the "text" annotations
h.txttop = text(0.5,1.5, 'Harmonic force \itf(t)=sin(\omegat)' , 'Parent',h.axtop ) ;                   %// note the 'parent' property set to the TOP axes
h.txtbot = text(0.5,0.3, 'Forced response \itg(t)=e^{\zeta\omegat} sin(\omegat)' , 'Parent',h.axbot ) ; %// note the 'parent' property set to the BOTTOM axes

%// set the common properties for all text objects in one go
set( [h.xlbl h.ylbl h.txttop h.txtbot] , 'FontName','Times New Roman' , 'FontSize',18)

将产生以下图: figure

注意如何保存图形对象的句柄,并在以后重新使用它来设置属性。如果多个图形对象(甚至是不同的)具有相同的属性,则可以一次性将此属性分配给所有图形对象。

查看Matlab text函数文档,了解有关如何在图形上添加注释的更多详细信息。

答案 1 :(得分:3)

xlabel('Time(s)')替换为:

xlabel('Time(s)','FontName','TimesNewRoman','FontSize',18)

并对ylabel执行相同操作。

对于标记尺寸,请将hPlot1 = plot(x,y1,'rs');替换为

hPlot1 = plot(x,y1,'r-',x(1:5:end),y1(1:5:end),'ks','MarkerSize',8);

和其他情节相同。

最后,您可以使用text功能向图中添加文字,例如:

text(0.5,1.5,'Harmonic force f(t) = sin(\omega t)')

同样,您可以更改字体大小和字体名称,与xlabelylabel一样。