2016-09-16 44 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