2015-04-27 47 views
0

我想繪製一個擬合虛線的散點圖。pyplot - 不能畫出虛線

plt.scatter(x, y, s=z, alpha=0.5) 
m, b = np.polyfit(x, y, 1) 
y = [(m*i) + b for i in x] 
plt.plot(x, y,':') 

我附加結果。我的問題是線條的整個長度不會顯示爲虛線,只顯示它的結尾。我試圖將其改爲虛線,並再次遇到同樣的問題。這是圖像分辨率的問題嗎?

enter image description here

+1

看起來你在0點左右的點非常密集,即所有的x值都會非常接近,從而導致你的「實線」。我敢打賭,如果你在這條線上放大WAY,它最終將被點綴。 – Ajean

+0

你說得對,我放大了它,它似乎點綴。我認爲這條線不會根據點的密度繪製,只能根據第一個和最後一個點 – Vasilis

+0

嗯,您可以通過改變'plt.plot(x,y,':'')來繪製第一個和最後一個點。 )'到'plt.plot([x [0],x [-1]],[y [0],y [-1]],':')' – Ajean

回答

3

整行是虛線的;這個問題可能是一些事情;你在x中的點數非常接近,並且它們可能不會被排序。在前一種情況下,點非常擁擠,除非您放大顯示,否則虛線顯示爲固定,而在後一種情況下,線會覆蓋本身,使其看起來更加堅固。

只需繪製線條的端點或創建一組新的稀疏x值來繪製線條擬合,即可解決此問題。

+0

我認爲原因既不是x中的點數,也不是它們間隔不等的事實。問題是x值是*未排序*。因此,生成的線路來回並覆蓋本身。你的解決方案仍然克服了這個問題, – hitzg

+0

啊,你可能確實是對的;在那裏我再次假設(我假設他們被分類)。我會在考慮中考慮這一點。 – Ajean

+0

那麼,我的評論也只是一個假設;) – hitzg