簡體   English   中英

為什么 plt.plot 不顯示圖表?

[英]Why plt.plot does not show me the graph?

我正在嘗試 plot 圖表中以下計算的結果,x 是 N 的值,y 是計算出的誤差,但是當我這樣做時,我看不到圖表,有人知道為什么嗎?

您的支持將非常有幫助。

import numpy as np
import random 
import matplotlib.pyplot as plt 

#enter N to equal 100
N = int(input("Define a value for N: "))


Leibniz_Error = np.zeros(N)
Euler_Error = np.zeros(N)


#Leibniz
sum1 = 0
for k in range (N):       
    sum1= sum1 + 1.0/((4*k + 1)*(4*k + 3))
    Leibniz_Error = np.pi - 8*sum1
sum1 = 8*sum1
Final_Leibniz_Error = abs(np.pi - sum1)
print("Euler=", Final_Leibniz_Error)

#Euler
sum2 = 0
for k in range (1,101):
    sum2 = sum2 + 1/(k**2)
    Euler_Error = np.pi - np.sqrt (6*sum2)
sum2 = 6*sum2
sum2 = np.sqrt(sum2)
Final_Euler_Error = abs(np.pi - sum2)
print("Euler=", Final_Euler_Error)

plt.plot (N, Final_Leibniz_Error)
plt.plot (N, Final_Euler_Error, 'r-')
print (N)

這就是我在 plot 時得到的。

在此處輸入圖像描述

由於您只是在繪制點,因此您必須使用plt.scatter(N, Final_Leibniz_Error)代替,因為 plot 只會在點對之間繪制線

如果你想 plot 錯誤通過迭代你需要保存漸進式錯誤

import numpy as np
import random 
import matplotlib.pyplot as plt 

#enter N to equal 100
N = int(input("Define a value for N: "))


Leibniz_Error = np.zeros(N)
Euler_Error = np.zeros(N)


#Leibniz
sum1 = 0
leibniz_errors = []
for k in range (N):       
    sum1= sum1 + 1.0/((4*k + 1)*(4*k + 3))
    Leibniz_Error = np.pi - 8*sum1
    leibniz_errors.append(Leibniz_Error)
sum1 = 8*sum1
Final_Leibniz_Error = abs(np.pi - sum1)
print("Euler=", Final_Leibniz_Error)

#Euler
sum2 = 0
euler_errors = []
for k in range (1,101):
    sum2 = sum2 + 1/(k**2)
    Euler_Error = np.pi - np.sqrt (6*sum2)
    euler_errors.append(Euler_Error)
sum2 = 6*sum2
sum2 = np.sqrt(sum2)
Final_Euler_Error = abs(np.pi - sum2)
print("Euler=", Final_Euler_Error)

plt.plot([i for i in range(N)], leibniz_errors)
plt.plot([i for i in range(100)], euler_errors, 'r-')
plt.show()
print (N, Final_Leibniz_Error)

在此處輸入圖像描述

暫無
暫無

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

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