Python 将matplotlib轴更改为数据点的范围(数量),而不是数据点的长度

Python 将matplotlib轴更改为数据点的范围(数量),而不是数据点的长度,python,matplotlib,plot,Python,Matplotlib,Plot,我有一个atom索引和相应的RMSF值列表,每个RMSF值一个索引,我想在更大的python环境(Jupyter笔记本)中的matplotlib中绘制这些索引。我只绘制了一个子集索引编号,名为selectacarbons,并创建了相应的数据点,名为rmsfacarbons。selectacarbons从一组更大的31000个索引中挑选出1876个选项-在一组索引中,它们的索引编号按顺序排列,即1、2、3、4、…、31000,而对于selectacarbons而言,它们不是按顺序排列的,即5、13

我有一个atom索引和相应的RMSF值列表,每个RMSF值一个索引,我想在更大的python环境(Jupyter笔记本)中的matplotlib中绘制这些索引。我只绘制了一个子集索引编号,名为
selectacarbons
,并创建了相应的数据点,名为
rmsfacarbons
selectacarbons
从一组更大的31000个索引中挑选出1876个选项-在一组索引中,它们的索引编号按顺序排列,即1、2、3、4、…、31000,而对于
selectacarbons
而言,它们不是按顺序排列的,即5、13、32、63、…、31000。我第一次尝试策划:

import matplotlib as plt
plt.plot(selectacarbons, rmsfacarbons)
plt.xlabel('index of the alpha carbons')
plt.ylabel('RMSF (Å)')
plt.title('alpha carbons RMSF')
给了我一个包含正确数据的绘图,但x轴范围为0-31000(初始较大数据集的长度)。我想要完全相同的数据,但x轴的范围为0-1876,因此我尝试将这些数据添加到上述代码中:

plt.axis([0, 1876, 0, 1.6])

length = (len(selectacarbons))
plt.xlim([0, length])

plt.xlim([min(selectacarbons), max(selectacarbons)])

同样,在
selectacarbons
中的所有1876个选项都带有原始的非顺序索引标识符,如5、13、32、63、…、31000。以上所有这些尝试都只是在
selectacarbons
中绘制范围在0-1876之间的部分数据,而不是在
selectacarbons
中绘制所有1876个数据点。如何更改轴以表示数据点的数量而不是数据点的长度?

也许这对您来说已经足够了

plt.plot(范围(len(selectacarbons)),rmsfacarbons)

或者,如果要绘制完全相同的绘图并仅更改轴,则可以使用

xticks(您希望在轴上添加标签的位置)


xticklabels(您希望在这些位置使用的标签)

供未来读者阅读:
plt.plot(range(len(selectacarbons)),rmsfacarbons)
解决了这个问题!必要时,
xtick
xticklabel
仅用于进一步定制