2017-11-11 275 views
1

我正在嘗試繪製一些數據,其中x軸顯示數據點之間的等距間距。matplotlib數據點之間的相等間距

代碼:

#!/usr/bin/env python 
from matplotlib import pyplot as plt 

sizes = [1400, 1600, 1700, 1875, 1100, 1550, 2350, 2450, 1425, 1700] 
prices = [245, 312, 279, 308, 199, 219, 405, 324, 319, 255] 

plt.xlim([1000, 2500]) 
plt.ylim([0, 500]) 
plt.xlabel("sizes") 
plt.ylabel("prices") 

plt.scatter(sizes, prices) 
plt.show() 

如何看起來: enter image description here 我多麼希望它看起來:

https://www.kdnuggets.com/2017/04/simple-understand-gradient-descent-algorithm.html

所以每兩個相鄰之間的距離分相等。

+2

這似乎沒有多大意義。如果x軸是一個帶有單位的軸,並且你確實有相應的值(這裏是「尺寸」),那麼完整的情節就會按照你的要求進行僞造。 – ImportanceOfBeingErnest

回答

2

所以,看起來你的圖只是爲了表示的目的。 x軸上的數字不需要按比例。爲了繪製這個圖表,您必須創建一個實際按比例縮放的軸列表,並用您的sizes列表中的元素替換其標籤。下面的代碼顯示瞭如何做到這一點

#!/usr/bin/env python 
from matplotlib import pyplot as plt 

sizes = [1400, 1600, 1700, 1875, 1100, 1550, 2350, 2450, 1425, 1700] 
prices = [245, 312, 279, 308, 199, 219, 405, 324, 319, 255] 

plt.ylim([0, 500]) 
plt.xlabel("sizes") 
plt.ylabel("prices") 

x = [a for a in range(len(sizes))] 
plt.scatter(x,prices) 
plt.xticks(x, sizes) 
plt.show() 
+0

原來,這並沒有太大的意義,但你的答案是正確的。謝謝! – cie