如何更改x轴的字体大小?

时间:2021-12-26 23:39:56

Is there any way to change the font size property of x axis in MATLAB for a figure? I need to change the size of the values in x axis (not the title, that one could modify with xlabel property). I have the next piece of code:

是否有办法在MATLAB中改变x轴的字体大小属性?我需要改变x轴的值(不是标题,可以用xlabel属性修改)。我有下一段代码:

%% Some figure properties:
width=15;height=20;alw=0.75;

%% Figure:
for i=1:8
      figure;set(gcf,'color','white');
      pos=get(gcf, 'Position');
      set(gcf, 'Position', [pos(1) pos(2) width*100, height*100]);
      set(gca, 'LineWidth', alw);axis off;
      axes('position',[0.06 0.08 0.87 0.38])
      plot(0:24,s(i).obs(:,1),'linewidth',2,'color','b');hold on;
      plot(0:24,s(i).sim(:,1)-273.15,'linewidth',2,'color','r');
      legend('Obs','Sim','location','northeastoutside');
      set(gca,'xtick',0:24,'xticklabel',0:24);
      set(gca,'ytick',2:2:28,'yticklabel',2:2:28);
      xlabel('Hour');ylabel('[°C]');axis([0 24 2 28]);grid on;
      axes('position',[0.06 0.53 0.87 0.38]);
      plot(s(i).time.obs,s(i).serie.obs,'b');hold on;
      plot(s(i).time.sim,s(i).serie.sim-273.15,'r');
      datetick('x','myy');axis tight;grid on;
      legend('Obs','Sim','location','northeastoutside');
      title([s(i).name ', porcNaN: ' num2str(roundn(s(i).rnan,-1)) ...
          '%, period: '  datestr(s(i).period(1,:),20) ' - '...
           datestr(s(i).period(2,:),20)],'fontsize',12);
      ylabel('[°C]');set(gca,'fontsize',8)
      image_name=['temp_sup_' s(i).name];
      print(image_name,'-dpng','-r600')
end

"s" is a struct. The problem is the values in the x axis of the second plot (the figure above), datetick put all months and years values, I need this information (each one month), but they're very close together. I know the "fontsize" property, but this property change the font size in the two axis (x and y), and I need only change the x axis.

“s”是一个结构体。问题是第二个图(上图)中的x轴上的值,datetick把所有月份和年份值都放在一起,我需要这个信息(每个月),但是它们非常接近。我知道“fontsize”属性,但是这个属性改变了两个轴(x和y)的字体大小,我只需要改变x轴。

1 个解决方案

#1


9  

I always do it in the following way:

我总是这样做:

plot(X)
set(gca, 'FontName', 'Arial')
set(gca, 'FontSize', 12)
ylabel('Label Y axis')
xlabel('Label X axis')

In this way, the axis and the label will have the requested font and size. It is important to put 'xlabel' and 'ylabel' after the 'set'. The order in this case matters.

这样,轴和标签就会有请求的字体和大小。在“set”后面加上“xlabel”和“ylabel”是很重要的。这个案子的顺序很重要。

There is other way to set the fonts for the xlabel, ylable, legend, plot as below; it may complement the upper answer:

还有另一种方法来设置xlabel, ylable, legend, plot如下的字体;它可以补充上面的答案:

% Define values
linewidthnumber = 2;
legendfontsize = 12;
labelfontsize = 12;
axisfontsize = 12;
custom_plot_handle_name = plot(x);
custom_legend_handle_name = legend();
custom_x_label_name = xlabel();
custom_y_label_name = ylabel();

% Set the parameters now to the given values
set(h, 'Linewidth', linewidthnumber);
set(custom_legen_handle_name,'FontSize', legendfontsize);
set(custom_x_label_name, 'FontSize', labelfontsize);
set(custom_y_label_name, 'FontSize', labelfontsize);
set(gca, 'FontSize', axisfontsize);

#1


9  

I always do it in the following way:

我总是这样做:

plot(X)
set(gca, 'FontName', 'Arial')
set(gca, 'FontSize', 12)
ylabel('Label Y axis')
xlabel('Label X axis')

In this way, the axis and the label will have the requested font and size. It is important to put 'xlabel' and 'ylabel' after the 'set'. The order in this case matters.

这样,轴和标签就会有请求的字体和大小。在“set”后面加上“xlabel”和“ylabel”是很重要的。这个案子的顺序很重要。

There is other way to set the fonts for the xlabel, ylable, legend, plot as below; it may complement the upper answer:

还有另一种方法来设置xlabel, ylable, legend, plot如下的字体;它可以补充上面的答案:

% Define values
linewidthnumber = 2;
legendfontsize = 12;
labelfontsize = 12;
axisfontsize = 12;
custom_plot_handle_name = plot(x);
custom_legend_handle_name = legend();
custom_x_label_name = xlabel();
custom_y_label_name = ylabel();

% Set the parameters now to the given values
set(h, 'Linewidth', linewidthnumber);
set(custom_legen_handle_name,'FontSize', legendfontsize);
set(custom_x_label_name, 'FontSize', labelfontsize);
set(custom_y_label_name, 'FontSize', labelfontsize);
set(gca, 'FontSize', axisfontsize);