我正在尝试基本复制此图表以供我最后的练习,但我不了解如何更改字体,大小或标记轴。简单地说,我需要从我的代码中完全复制这个图。我需要字体为新罗马字体,尺寸为18,标记大小为8.我如何将代码格式化为此?
这是我的代码:
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)
答案 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)
将产生以下图:
注意如何保存图形对象的句柄,并在以后重新使用它来设置属性。如果多个图形对象(甚至是不同的)具有相同的属性,则可以一次性将此属性分配给所有图形对象。
查看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)')
同样,您可以更改字体大小和字体名称,与xlabel
和ylabel
一样。