我有以下数据,我希望在MatLab的条形图中绘制:
publications = [15 12 35 12 19 14 21 15 7 16 40 28 6 13 16 6 7 22 23 16 45];
bar(publications,0.4)
set(gca,'XTickLabel',{'G1','G2','G3','G4','G5','G6','G7','G8','G9','G10',...
'G11','G12','G14','G16','G17','G18','G19','G20','G21','G22','G23'})
Run Code Online (Sandbox Code Playgroud)
但是,当我执行此操作时,我得到以下情节:

显然x标签在这里是不正确的,因为第一个栏应该有x标签'G1',第二个栏应该有'G2'等,直到我们到达最后一个应该有'G23'的栏.
如果有人知道如何解决这个问题,我真的非常感谢!
我喜欢在MATLAB中绘制一个傅里叶变换后的信号.通过set(gca,'xtick',peak,'FontSize',12); 我可以在x轴显示峰值.但有时候,峰值距离太远,显示峰值的文本与其邻居合并在一起.我在网上搜索过,但可能会问错误的问题:)所以我的问题是: 如何用交替的高度绘制峰值,如下图所示? 我更喜欢使用1 x轴.

谢谢您的帮助!:)