matlab - 如何在 'bar' 图上显示所有 x 标签?

标签 matlab plot

我希望在 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'})

但是,当我执行此操作时,我得到以下图:

enter image description here

显然这里的 x 标签是不正确的,因为第一根柱应该有 x 标签 'G1',第二根柱应该有 'G2',等等,直到我们到达最后一根柱应该有 'G23' .

如果有人知道我该如何解决这个问题,我将非常非常感激!

最佳答案

添加以下行:

set(gca,'XTick',1:numel(publications))

在设置标签之前。

现在这取决于你的结果图有多大,因为标签有点挤。 您可以调整字体大小或方向或条形之间的间隙。

可能出版物名称稍长,因此最好旋转 90°,您可能会找到 this answer或者这个 link有帮助。

另一个建议是使用 barh 并在打印后旋转:

publications = [15 12 35 12 19 14 21 15 7 16 40 28 6 13 16 6 7 22 23 16 45];
bh = barh(publications,0.4)
set(gca','XAxisLocation','top')
set(gca,'YTick',1:numel(publications))
set(gca,'YTickLabel',{'G1','G2','G3','G4','G5','G6','G7','G8','G9','G10',...
    'G11','G12','G14','G16','G17','G18','G19','G20','G21','G22','G23'})

enter image description here

关于matlab - 如何在 'bar' 图上显示所有 x 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24732043/

相关文章:

python - 如何获取 matplotlib 中轴上单个单位的长度(以像素为单位)?

plot - 在 Mathematica 中使用 'fill' 函数时如何更改边缘线颜色?

plot - Octave:通过颜色混合创建两个直方图

java - 高效地将 Java 列表转换为 Matlab 矩阵

Matlab/Octave 数列

matlab - 如何从 matlab 中计算多项式的函数句柄计算多项式的系数?

c++ - 如何构建 Eigen::Map 到我打算用数据填充的 matlab::data::Array 对象

r - 将 Y 标签值更改为整数

javascript - Plotly - 根据值隐藏悬停工具提示上的数据?

matlab - 在 MATLAB 中绘制透明线