VS中的python代码里,只要有中文就会报这个错误(不包含注释)
在界面中的有三个不同输入框也即是Tkinter中的entry,然后可以选择位移&应变的一项,在其label下方的输入框输入需要显示的位移传感器侧点,以其为基础来与其他所有应变测点相作用来分析,同时输入的点都是大写英文字母代表各个测点,当你输入的不是对应内容或者超出了位移点的范围时按下按钮会出现一个提示框然后需要重新输入正确后才会显示,位移测点的范围为A~R点,输入相应内容到输入框然后通过调用函数获取内容在按下其下方按钮后在图上显示相应内容的相关系数图像。图像通过输入框的到的测点数据转化为对应的位移测点,以其为基础来计算其与其他所有应变测点的数据的相关系数,然后以某个位移测点与其他每个应变测点为X轴,Y轴为每一组对应的相关系数数据来描绘直方图,同时当在界面上勾选了在TXT文本中显示数据时,会在对应的TXT文件中显示出相关的相关系数数据的文本,以此观察不同数据间的相关系数来推测其相关性。
1)、位移-应变关联度可视化、功能代码如下所示:
def draw_D_Y():
f_plot1.clear()
d2 = ord(user_text1.get())
if d2>77:
str1 = messagebox.showinfo(title='提示',message = '输入范围错误,请重新输入')
if str1 == 'ok':
return
test_VD2 = d2-65
if test_VD2<18:
col_test_VD2 = sh.col_values(test_VD2)
s_test1=pd.Series(col_test_VD2[1:])
corr_nm2 = []
X=[]
open('D_Y.txt', 'w').close()
for i in range(0,44):
X.insert(i,i)
col_y = sh2.col_values(i)
s_y=pd.Series(col_y[1:])
corr_test1=s_test1.corr(s_y)
if corr_test1<0:
corr_nm2.append(-corr_test1)
else :
corr_nm2.append(corr_test1)
if chvarUn.get()==1:
result2txt=str('位移'+str(user_text1.get()) +'测点&应变'+str(i+1) +'测点的相关系数:'+str(corr_nm2[i])) # data是前面运行出的数据,先将其转为字符串才能写入
with open('D_Y.txt','a',encoding='utf8') as file_handle: # .txt可以不自己新建,代码会自动新建
file_handle.write(result2txt) # 写入
file_handle.write('\n') # 有时放在循环里面需要自动转行,不然会覆盖上一条数据
if i==43:
subprocess.Popen("notepad.exe D_Y.txt")
f_plot1.set(title='ver_d&YB',xlabel='ver_d&YB',ylabel='corr_num')
f_plot1.bar(x=X,height=corr_nm2,width=0.5,)
canvs1.draw()
2)、位移-应变关联度可视化展示:
当不勾选时: