如何将条形图的 XtickLabels 向左移动?

How to shift the XtickLabels of a bar graph to the left?

我目前正在尝试创建一个频率直方图,为此,我必须创建一个条形图,条形图之间没有空格。但是,这会将 XTickLabels 置于条形中间。由于它是直方图,我希望数值位于每个条形之间的线上,以便它可以直观地指示间隔。本质上,我需要将所有刻度标签向左移动。
我正在使用 R2016a。

浏览 Mathworks 只找到了有关如何使用折线图、散点图等进行此操作的答案。

您是否尝试过使用 set 命令。例如:

%create some data
x=1:10;
y=rand(1,10);
%bar plot
bar(x,y)
%shift the x to the left 0.4
set(gca, 'XTick', x +.4)

我试图 google 你的问题,并直接在这里找到了这个答案: XTick labels and Stacking in bar plot

您不只使用 hist 或更新的 histogram 有什么原因吗?使用 edit hist 调查 hist 的源代码,我发现他们只是将 bar'hist' 选项一起使用。像这样:

edges = 1:10
binwidth = 1
x = edges + binwidth/2
nn = 21:30

bar(x, nn, [min(edges), max(edges)], 'hist')

给予

您也可以查看 histogram 的代码,看看他们在那里是如何做的,但这涉及到一些小动作。

使用Style argument of bar设置为histc.

v = [6 12 17 21 28 25 19 15];
bar(v,'histc');

给出:


此外,如果您有兴趣,可以将 direction of tick marks 更改为向外:

set(gca,'TickDir', 'out')