【发布时间】:2015-04-02 00:39:21
【问题描述】:
我正在尝试使用 python 和 matplotlib 绘制一个向量。
我的问题是,在 matplotlib.pyplot 中,我的数据的 x 轴从 0 开始,到 23 结束。并且在图中也考虑了这一点。
我想要的是这个轴从标签 1 开始(它与第一个 y 值或自然 python 索引中的值 #0 相关)并以 24 结束(与最后一个 y 值或值 #23 相关)自然 Python 索引)。
我尝试了 pp.xlim(xmin=1),但问题是,这样一来,第一个维度 (0) 在图中消失了,并且上限继续为 23。我希望它是 24 并且第一个 y 值,其 x 值标记为 1(不是 0)。
这个solution 不适合我。我试图在图表的 x 轴上使用标签 [1,24] 而不是 [0,23]。正如我所写的,如果我在 x 轴上使用 xlim=1 或 set_xlim=1 从 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()
当我运行代码时,生成的图像是下图:
预计第一个 y 值将显示在 x=1 中,最后一个 y 值将显示在 x=24 中。但是 Python 索引从 0 开始,因此,看起来代码正在“移动”值,从 x=2(或 python 自然索引中的 x=1)开始。
solution proposed here 对我没有帮助,因为它不会显示第一个值 (0)。我想要显示所有值,但标签必须以 1 开头并以 24 结尾。问题是 python 索引将从 0 开始并以 23 结尾。
在python中如何处理这个问题?
【问题讨论】:
-
@tcaswell 在我的另一篇文章中写道,这是我的选择之一。抱歉,如果这给您带来了困扰。
-
谁建议删除和重新发布?请不要再这样做了。
-
@tcaswell 它是在重复警告后写在我的帖子上的。也许我没有按我应该的方式理解它。
-
对不起@tcaswell,我只是想把垃圾从 SO 中拿出来 :-)
标签: python python-2.7 matplotlib plot