我正在尝试使用Python和Matplotlib绘制向量。
我的问题是,在Matplotlib.pyplot中,我的数据的x轴从0开始,到23结束。在图表中也是如此。
我想要的是这个轴以标签1开始(它与第一个y值有关,或自然Python索引中的值#0),并以24结束(与最后一个y值有关,或自然Python索引中的值#23)。
我尝试了pp.xlim(xmin=1),但问题是,这样,第一维度(0)消失在图表中,上限仍然是23。我希望它是24,而第一个y值的x值标记为1(而不是0)。
这个解决方案对我不起作用。我想在图表的x轴上使用标签[1,24],而不是[0,23]。正如我所写的,如果我使用xlim=1或set_xlim=1从x轴开始,第一个y值(向量的维度0)就不会在图表中显示。它从第二个y值(向量的维度1)开始,并以最后一个值结束。我不想要这个。这里是我正在使用的源代码。
import matplotlib.pyplot as pp
import numpy as np
a=np.array( [0.10478151, 0.09909564, 0.01319826, 0.00743225, 0.00483721, 0.18202419, 0.01732046, 0.04153536, 0.03317991, 0.0536289, 0.00585423, 0.00929871, 0.00629363, 0.12180654, 0.00607781, 0.03752038, 0.05547452, 0.01459015, 0.00604909, 0.01132442, 0.00710363, 0.11159429, 0.0079922, 0.04198672])
pp.xlabel('Dimension')
pp.ylabel('Importance')
ax=pp.subplot(111)
ax.set_xlim(1, 24)
dim=np.arange(1,24,1);
ax.plot(a, 'ro', color='r',linewidth=1.0, label="Graph2")
pp.xticks(dim)
pp.grid()
pp.show()
pp.close()
当我运行代码时,得到的图像如下所示:
预期第一个y值将显示在x=1处,最后一个将显示在x=24处。但是Python索引从0开始,因此代码似乎正在“移位”值,从x=2开始(或在Python自然索引中从x=1开始)。
这里提出的解决方案对我没有帮助,因为它不会显示第一个值(0)。我想要显示所有的值,但标签必须以1开头,以24结尾。问题在于Python索引从0开始到23结束。
如何在Python中解决这个问题?