2014-01-23 314 views
0

经过多年阅读stackoverflow我达到了一个问题,我无法找到答案,所以我从这里开始。matplotlib自定义x轴与自定义数量的刻度

我正在使用python和matplotlib,并想从1开始绘制xaxis,没有其他任何更改。

import matplotlib.pyplot as plt 

y = range(1, 1000, 2) 
plt.plot(y) 
plt.show() 

此地块,但在x轴上从0开始我试图提供一种X轴与

y = range(1, 1000, 2) 
plt.plot(y) 
plt.plot(range(1, len(y)+1), y) 
plt.show() 

,但是这并不能改变x轴本身。

我尝试过的另一种方法是使用plt.xticks并自己设置刻度。

但后来我碰上的500个xticks问题正在绘制(甚至更多,如果y值包含大量的数据)。

我怎样才能简单地绘制数据显示1而不是0在开始,没有第一个元素的数据被排除在外或其他数据的变化?

回答

1

好吧,xlim不工作,但为什么不把1和1000放在xticks上?

plt.xticks([1, 1000]) 
+0

一个好主意,但不幸的是,它不能解决问题,如果值太多。使用xlim与y值作为y = range(1,1000,2)仍然会给出0作为绘图的开始。它是否在你的机器上的x轴上加1? – tkja

+0

@tkja我很难理解你想达到的目标。你为什么单独绘制'y'而不是正确的'ax.plot(x,y)'。如果你只是想从'1'开始滴答,那么上面修改后的答案应该是好的,不需要像以前那样在该图上放置一千个滴答。 – nye17

+1

简单和工作。如果我有能力让你高兴,我会的。谢谢! – tkja