2015-04-01 425 views
1

我正在使用以下代码在matlab中创建条形图。Matlab:条形图x轴标签丢失

a = [1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9] 
bar(a) 
set(gca,'XTickLabel',{'one','two','three','four','five','six','seven','eight','nine','zero','one','two','three','four','five','six','seven','eight','nine'}) 

代码正常工作,除了x轴标签不会出现在x轴的相应位置上。我该如何解决这个问题?

enter image description here

+0

他们的相应位置是什么?标签似乎坐在刻度标记对我... – kkuilla 2015-04-01 15:09:30

+0

[This](http://stackoverflow.com/questions/23746964/x-axis-label-on-two-rows/23747408#23747408)可能是鼓舞人心的足以解决这个问题。 – Divakar 2015-04-01 15:57:16

回答

4

当您设置XTickLabel,你告诉Matlab来替换文本,其中每个刻度目前与您提供的新文本。如果你只运行前两行,你会发现默认情况下Matlab已经将XTicks设置为0:2:20。你可以先告诉Matlab来把蜱为每个条解决问题,然后重新标记这些蜱:

a = [1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9] 
bar(a) 
set(gca, 'XTick', 1:length(a)) 
set(gca,'XTickLabel',{'one','two','three','four','five','six','seven','eight','nine','zero','one','two','three','four','five','six','seven','eight','nine'}) 

你将不得不在这一点上非常杂乱x轴...你会想查看使用FileExchange中的rotateXLabels函数或Matlab14b及更高版本中的内置功能旋转XTickLabels。