matplotlib 用Python绘制图形

nr9pn0ug  于 2022-11-15  发布在  Python
关注(0)|答案(3)|浏览(186)
K = 1
Rmv = 26
SigS = 111.7
M = 2.050
N = 2
SigD = (-249.4)
def Mittelspannung():
    result = [] 
    Z = []
    SigM = []
    for i in range(1,31):
        output = 1 - pow((((i-1)*1/14.5)-1),2)
        result.append(output)
        #print(output)   
    for value in range(0,15):
        C4 = (Rmv) - (result[value]) * (Rmv)
        Z.append(C4)
        print(C4)    
    for value in range(15,30):                
        B11 = (SigD) - (result[value]) * (SigD)
        Z.append(B11)
        print(B11)           
    for x in range(0,30):    
        SigMean = ((SigS**M * (1-(Z[x] + SigS)**N/(Rmv + SigS)**N))*(1/M))/K
        SigM.append(SigMean) 
    return SigM
print(Mittelspannung())

我正在绘制'Z'和'SigM'之间的图形。我得到一个错误。有人能帮助绘制图形吗?

jv4diomz

jv4diomz1#

您应该创建一个列表Z,在其中追加每次迭代计算的Z值,如下所示:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

K = 1
Rmv = 26
SigS = 111.7
M = 2.050
N = 2
SigD = (-249.4)

def Mittelspannung():
    result = [] 
    Y = []
    SigM = []
    Z = []

    for i in range(1,31):
        output = 1 - pow((((i-1)*1/14.5)-1),2)
        Z.append(Rmv - (output*Rmv))
        result.append(output)
    
    for value in range(0,15):
        C4 = (Rmv) - (result[value]) * (Rmv)
        Y.append(C4)   

    for value in range(15,30):                
        B11 = (SigD) - (result[value]) * (SigD)
        Y.append(B11)
          
    for x in range(0,30):    
        SigMean = ((SigS**M * (1-(Z[x] + SigS)**N/(Rmv + SigS)**N))**(1/M)) / K
        SigM.append(SigMean) 
    return Z, SigM

Z, SigM = Mittelspannung()
plt.figure()
plt.plot(Z, SigM)
kulphzqa

kulphzqa2#

您没有在函数调用中定义Z。根据您使用的工具,您应该能够在错误消息中看到类似于“初始化前正在使用Z”的内容。

xwbd5t1u

xwbd5t1u3#

Z, SigM = Mittelspannung()
plt.figure()
plt.plot(Z, SigM)

此代码将显示错误
错误数

----> 1 Z, SigM = Mittelspannung()
      2 plt.figure()
      3 plt.plot(Z, SigM)

ValueError:要解包的值太多(应为2个)
//试试这个

SigM = Mittelspannung()
plt.figure()
plt.plot(SigM)

相关问题