2016-09-16 84 views
2

我正在尝试生成一个x轴为几何序列而y轴为介于0.0和1.0之间的数字的绘图。我的代码如下所示:如何使xticks尽管其价值均匀间隔?

form matplotlib import pyplot as plt 
plt.xticks(X) 
plt.plot(X,Y) 
plt.show() 

产生这样一个情节:

My plot

正如你所看到的,我明确设置x轴蜱属于几何的那些序列。

我的问题:是否有可能使X-ticks尽管它们的值是均匀间隔的,因为序列的初始项很小,并且拥挤在一起。有点像对数刻度,这对于处理基数的权力是理想的,但对于几何序列而言,我认为这种情况就是这种情况。

回答

2

您可以将您的变量绘制为参数化曲线的“自然”变量的函数。例如:

n = 12 
a = np.arange(n) 
x = 2**a 
y = np.random.rand(n) 

fig = plt.figure(1, figsize=(7,7)) 
ax1 = fig.add_subplot(211) 
ax2 = fig.add_subplot(212) 

ax1.plot(x,y) 
ax1.xaxis.set_ticks(x) 

ax2.plot(a, y) #we plot y as a function of a, which parametrizes x 
ax2.xaxis.set_ticks(a) #set the ticks to be a 
ax2.xaxis.set_ticklabels(x) # change the ticks' names to x 

其产生:

enter image description here

+0

我解决它类似地使用pyplot.axes.set_xticks()和pyplot.axes.set_xlabels()。我打算回答我自己的问题,但你在这里给出了很好的答案,比我写的要好得多。谢谢。 – rahul1210