Python MatplotLib 绘制 x 轴,第一个 x 轴值标记为 1(而不是 0)

标签 python python-2.7 matplotlib plot

我正在尝试使用 python 和 matplotlib 绘制矢量。

我的问题是,在 matplotlib.pyplot 中,我的数据的 x 轴从 0 开始到 23 结束。在图中也考虑了同样的问题。

我想要的是这个轴从标签 1 开始(它与第一个 y 值相关,或自然 python 索引中的值 #0)并以 24 结束(与最后一个 y 值相关,或在自然 python 索引中的值 #23)自然 python 索引)。

我试过pp.xlim(xmin=1),但是问题是,这样一来,图中的第一个维度(0)就消失了,上界继续是23,我希望是24,第一个 y 值的 x 值标记为 1(不是 0)。

solution不适合我。我试图在图表的 x 轴上使用标签 [1,24] 而不是 [0,23]。如我所写,如果我使用 xlim=1 或 set_xlim=1 从 x 轴上的 1 开始,则第一个 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()

当我运行代码时,生成的图像如下图所示:

enter image description here

预计第一个 y 值将在 x=1 中显示,最后一个在 x=24 中显示。但是 Python 索引从 0 开始,所以看起来代码正在“移动”值,从 x=2(或 python 自然索引中的 x=1)开始。

solution proposed here对我没有帮助,因为它不会显示第一个值 (0)。我想要显示所有值,但标签必须以 1 开头并以 24 结尾。问题是 python 索引将以 0 开头并以 23 结尾。

如何在python中处理这个问题?

最佳答案

我知道这是一个很老的问题,但我找到了一个非常简单的解决方案:

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')
pp.plot(a, 'ro', color='r',linewidth=1.0, label="Graph2")

# just the following line will do it
pp.xticks(np.arange(len(a)), np.arange(1, len(a)+1))

pp.grid()   
pp.show()    
pp.close()

关于Python MatplotLib 绘制 x 轴,第一个 x 轴值标记为 1(而不是 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28288383/

相关文章:

python - 当时间戳作为Python中的索引时如何删除特定行

python - 将文件夹永久添加到 Python 的路径

python - 如何查找与一个或多个单词的输入查询匹配的所有字符串

image - 翻转 Matplotlib imshow() 的 x 和 y 轴

python - 趋势的最佳拟合线

python - 如何用虚线绘制渐近线?

python - django UnreadablePostError : request data read error 错误

python - 获取文本小部件的长度

python - AppEngine id/key/from_path 很困惑我应该使用什么

python - Pandas 将数据框绘制为分散提示未知项目