关于Matlab:如何在X轴上绘制百分比?

How to plot percentage on x-axis?

我设法在MATLAB中读取了一个大型excel表格,对数据进行了排序并绘制了所需数据的图表。我遇到的问题是我试图将x轴的值设置为百分比。我有一个大约1000个整数的变量,当我添加数据时该变量可能会增加。我已经分配了一个变量来检查变量的长度,这样我就不必手动更改它。问题是我需要将x轴分配为10%,20%... 100%。如何在不减少y轴数据的情况下做到这一点?

以下是x轴的代码:

1
2
3
4
5
A = round(length(data),2,'significant');
d = 0.1*A
e = 0:d:A
f = e/A*100
set(gca,'xticklabel', f)

x轴最多显示90%。 data的长度为16990,因此A的结果为17000,d的结果为1700,变量f的值从0到100,但是该图仍显示为90%。

下图显示了带有数据的图形,但未添加刻度的限制:

https://i.imgur.com/ccMDkzF.png

另一方面,当我更改了'ticklabels'时,它只缩小到图形的第一点。当我将ticklabels转换为'ticks'时,图形显示为完整,但刻度显示如下:

https://i.imgur.com/uZPU45S.png

我想做的是将18000转换为100%。


1
set(gca,'xticklabel', f)

设置刻度标签。它不会改变图形的其他任何内容。因此,它为现有的刻度线分配了不同的标签。它将使图表的读者感到困惑!

您想要做的是更改'xlim'属性,该属性确定您可以看到的x轴部分:

1
set(gca,'xlim',f([1,end]))

您可能还想自行设置刻度线:

1
set(gca,'xtick', f)