2017-09-27 88 views
0

我的代碼看起來是這樣的:Matplotlib:連接的環路產生的點與線

%matplotlib inline 
import matplotlib.pyplot as plt 
import numpy as np 

for x in np.arange(0,100,5): 

plt.scatter(x, x**2, c="blue", marker="o",s=1) 


plt.legend() 
plt.xlabel("$x$", fontsize=16) 
plt.ylabel("$f(x)$", fontsize=16) 
plt.show() 

這給了我附加的圖片: plot

我怎麼能點用直線連接起來,甚至更優選地,平滑曲線?

感謝您的幫助提前!

回答

1

您可以使用plot創建一條平滑線條,而不是scatter,它繪製各個點。此外,你不需要在這裏做任何循環,matplotlib處理數組的繪圖。

x = np.arange(0, 100, 5) 

plt.plot(x, x ** 2, c="blue") 

plt.xlabel("$x$", fontsize=16) 
plt.ylabel("$f(x)$", fontsize=16) 
plt.show() 

其中給出:

enter image description here

編輯

我不認爲有一種方式加盟點直接使用分散。你可以做

plt.scatter(x, x ** 2, c="blue",s=1) 
plt.plot(x, x ** 2, c="blue") 

基本上是

plt.plot(x, x**2, color="blue", marker="o") 

這是一樣的@ ImportanceOfBeingErnest的答案

+0

好吧,我意識到我的問題是有點誤導。我不想使用plt,但我正在尋求一種具體的方式來分散處理。 – Morley

0

一個scatter圖顯示(潛在的)不同的大小和顏色的各個點。看來在這種情況下,你想要有行plot
其次,沒有理由循環來自陣列中的各個點。相反,您想要將完整的數組提供給繪圖功能。

import matplotlib.pyplot as plt 
import numpy as np 

x = np.arange(0,100,5) 

plt.plot(x, x**2, color="blue", marker="o",ms=5, label="label") 


plt.legend() 
plt.xlabel("$x$", fontsize=16) 
plt.ylabel("$f(x)$", fontsize=16) 
plt.show() 

enter image description here