簡體   English   中英

如何讓 Plt.plot 在 python 中顯示我的拋物線?

[英]How to make Plt.plot show my parabolic line in python?

也許這將是重復的問題,但我找不到任何解決方案。 通常我編碼的內容應該在python中顯示一條曲線。 但是用這個代碼我看不到它。 我的代碼或 pycharm 有問題嗎? 這段代碼只向我顯示了一個帶有正確軸的空圖形。

我確實在 plt.plot(at[i], st, "ro") 中添加了“ro”。 這向我展示了圖表上的點,但我想看到完整的線條。


at = [0,1,2,3,4,5,6]

for i in range(len(at)):
    st = at[i]**2
    plt.plot(at[i], st)
plt.show()

這是您通常會這樣做的方式:

import numpy as np
import matplotlib.pyplot as plt                                                                                                                                                                                                                  
at = np.array([0,1,2,3,4,5,6])
at2 = at ** 2
plt.plot(at,at2)
plt.show()

您可以使用plt.plot(at,at2, c='red', marker='o')來查看斑點。

有關詳細說明,請閱讀文檔。

也許在繪圖之前完全計算要繪制的值。

at = [0,1,2,3,4,5,6]
y = [xi**2 for xi in at]

plt.plot(at, y)

或者用一個函數來替代

from math import pow

at = [0,1,2,3,4,5,6]

def parabolic(x):
    return [pow(xi,2) for xi in x]

plt.plot(at, parabolic(at))

兩者都返回以下圖: 在此處輸入圖片說明

首先生成兩個列表,然后繪制圖:

at = [0,1,2,3,4,5,6]
st = [key**2 for key in at] 
plt.plot(at,st)

在此處輸入圖片說明

請注意,以這種方式在圖形上繪制的順序僅完成了一次,因此效率更高。

其他答案為您的問題提供了解決方案,但不要告訴您為什么您的代碼不起作用。

沒有“看到任何東西”的原因是plt.plot(at[i], st)試圖在你給它的點之間畫線。 但是因為你只給它單一的值,所以它之間沒有任何界限。 結果,情節上什么也沒出現

當您更改為調用plt.plot(at[i], st, 'ro')您是在告訴它在點處繪制單個圓圈,並且這些圓圈不在點之間,因此會出現

其他答案向您展示了如何將多個值傳遞給plot ,因此 matplotlib 可以在這些值之間畫線。

你的一個評論說“它仍然不是拋物線”,這是因為 matplotlib 不是一個符號繪圖庫。 你只需給它數值,然后它就會將這些數值繪制到輸出設備上。 sympy是一個用於進行符號計算並支持繪圖的庫,例如:

from sympy import symbols, plot

x = symbols('x')

plot(x**2, (x, 0, 6))

為我做正確的事。 當前版本 (1.4) 不處理不連續性,但這將在下一個版本中修復

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM