如何更改matlab直方图中的刻度数并更改轴数字体大小

时间:2015-10-02 23:32:50

标签: matlab histogram

我只想要

  • x-axis显示1 2 3 4 5 6
  • y-axis显示0 20 40 60 80 100
  • 将数字字体大小更改为14

我尝试过设置不同的轴property(参见下面脚本中注释的代码行),但这些都不会影响图形。

%Code to generate the diceSum

DiceSum = myDiceRoller(1,500);
figure(1)

%Create the histogram

hist(DiceSum,NDice*6)

%Label the axes

xlabel('Value of Roll','FontSize',16)

ylabel('Number of Times Rolled','FontSize',16)

%set(gca,'X','FontSize',14)

%set(gca,'YTickLabel',{'0' ;'100'})

%set('xtick','FontSize',14)

%set('Xlim',[0,6], 'Ylim',[0 ,100])

%set('xtick',[0:1:6],'ytick',[0:20:100])

%set(gca,'XLim',[0 6])

%set(gca,'XTick',[0 1 2 3 4 5 6])

%set(gca,'XTickLabel',str2mat{'0','1','2','3','4','5','6')

%xlim([0 6])

这是我用来创建数据和直方图

的单独功能
function [DiceSum] = myDiceRoller(NDice,NRolls)

DiceSum = zeros(1,NRolls);%

for i = 1:NRolls;% on roll 1...roll 2

    for j = 1:NDice;% on roll 1 , roll #s of die

        n = ceil(rand(1)*6);

        DiceSum(1,i) = DiceSum(1,i) + n;

    end

    hist(DiceSum,NDice*6)

    xlabel('Value of Roll')

    ylabel('Number of Times Rolled')

end

1 个答案:

答案 0 :(得分:1)

要让x-axis显示1 2 3 4 5 6,您必须有两种可能性:

  • 更改您调用hist函数的方式,如下所示:

    % hist(DiceSum,1:NDice*6)

    hist(DiceSum,1:6)

这是因为在使用2个参数调用hist时,第二个应该是一个向量,在这种情况下,hist 返回长度(x)区间中Y的分布由x指定的中心(x第二个参数) - R2012b hist help

  • 直接设置x轴xtick,如下所示:

    set(gca,'xtick',[0:6])

要让y-axis显示0 20 40 60 80 100,您必须按如下方式设置y轴ytick

 set(gca,'ytick',[0:20:100])

要将xy轴刻度字体大小更改为14,您必须按如下方式设置轴fontsize

set(gca,'FontSize',14)

希望这有帮助。