Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab:条形图中缺少标签_Matlab_Charts_Bar Chart_Diagram - Fatal编程技术网

Matlab:条形图中缺少标签

Matlab:条形图中缺少标签,matlab,charts,bar-chart,diagram,Matlab,Charts,Bar Chart,Diagram,在Matlab 2012和2013中,我发现在条形图上设置XTickLabel最多只能在15个条形图上工作。如果有更多条,则缺少标签,如下所示 绘制15个条形图: N = 15; x = 1:N; labels = num2str(x', '%d'); bar(x); set(gca, 'XTickLabel', labels); 绘制16条线: N = 16; x = 1:N; labels = num2str(x', '%d'); bar(x); set(gca, 'XTickLabel

在Matlab 2012和2013中,我发现在
条形图上设置
XTickLabel
最多只能在15个条形图上工作。如果有更多条,则缺少标签,如下所示

绘制15个条形图:

N = 15;
x = 1:N;
labels = num2str(x', '%d');
bar(x);
set(gca, 'XTickLabel', labels);

绘制16条线:

N = 16;
x = 1:N;
labels = num2str(x', '%d');
bar(x);
set(gca, 'XTickLabel', labels);

对于
N>15
,它将始终仅显示10个标签


还有其他人经历过吗?有什么解决办法吗?我需要所有标签,因为我正在绘制离散的类别,而不是一个连续的函数。

这是因为记号标签必须与记号本身匹配。在您给出的示例中,
N=16
x=1:N,MATLAB自动执行以下
XTick
s(至少在您和我的机器上):

16个不同的条只有10个刻度。因此,当您运行
set(gca,'XTickLabel',labels)带有
标签=num2str(x','%d')(16个标签),它给出了显示的第二个图形,该图形在条形图之前/之后(位置0和18处)有错误的标签和记号

要为每个条设置记号标签,还需要将记号设置为匹配:

set(gca,'XTick',x) % this alone should be enough
set(gca,'XTickLabel',labels);
然后您将获得所需的结果:


无论出于何种原因,16似乎是MathWorks决定不应为每个条绘制
XTick
s的神奇数字,让用户根据需要进行设置。

谢谢!很遗憾,这种不一致性在报告中没有得到解释。
set(gca,'XTick',x) % this alone should be enough
set(gca,'XTickLabel',labels);