当我在 python 中绘制一些东西时,程序执行停止,直到我关闭绘图图

穆罕默德·阿明

这是我的代码,在计算了一些东西之后,我希望它在每一步都绘制它们

import time
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
FilePatch='E:\\# Civil Engineering Undergraduate\\Projects\\Python\\Frame'
NodesFile=FilePatch+'\\nodes.xlsx'
MemsFile=FilePatch+'\\members.xlsx'
MatsFile=FilePatch+'\\sections.xlsx' 

nodes=pd.read_excel(NodesFile)

mems=pd.read_excel(MemsFile)
mats=pd.read_excel(MatsFile)

nodes=np.array(nodes)
mems=np.array(mems)
mats=np.array(mats)

np.nan_to_num(nodes)
np.nan_to_num(mems)
np.nan_to_num(mats)

Segments=100
Scale=1

n=np.size(nodes[:,0])
m=np.size(mems[:,0]) 
UsedEIA=np.zeros((m,3)) 
.
.
.

但问题是,当它第一次调用 plt.plot(...) 时,它会停止执行并且不会继续,除非我关闭图形!这个问题有解决办法吗??

. 
. 
.

for i in range(1,1+n):
    dx=Scale*D[3*i-3,0] 
    dy=Scale*D[3*i-2,0] 
    xn=nodes[nodes[:,0]==i,1]+dx 
    yn=nodes[nodes[:,0]==i,2]+dy 
    plt.text(xn,yn,str(i))
    s=np.sum(nodes[nodes[:,0]==i,3:5]) 
    if nodes[nodes[:,0]==i,5]==1:
        plt.scatter(xn,yn,c='r',marker='s')
    elif nodes[nodes[:,0]==i,3]==1 or nodes[nodes[:,0]==i,4]==1:
        plt.scatter(xn,yn,c='g',marker='^')    
    plt.axis('equal')
    plt.show()
    time.sleep(0.1)

我也想在我的情节中添加一些文本,但它给了我一个我无法理解的错误!这里是:

p=mems[i,4] 
px=mems[i,3] 
dl=mems[i,5]*L 
w=mems[i,6]


xtxt=(FrameShape[0,0]+FrameShape[0:])/2 
ytxt=(FrameShape[1,0]+FrameShape[1:])/2 
xtxtp=FrameShape[0,0] 
xtxtpx=FrameShape[0,0]+abs(px)/(1+abs(p)) 
xtxtw=FrameShape[0,0]+abs(p)/(1+abs(p))+abs(px)/(1+abs(px)) 

if p!=0 or px!=0:
    btxt=' Py='+str(p)+' , Px=',str(px)+' @'+str(dl)
    plt.text(xtxtp,ytxt-0.5,btxt)


XY=np.array([X,Shape])
FrameShape=np.transpose(T[0:2,0:2])@XY 
FrameShape[0,:]=FrameShape[0,:]+xi 
FrameShape[1,:]=FrameShape[1,:]+yi 

if w!=0:
    atxt='UL='+str(w)
    plt.text(xtxtw,ytxt+0.5,atxt)

这是它在控制台中给我的错误:

 TypeError: only size-1 arrays can be converted to Python scalars
克里斯蒂安·卡彻

plt.show()阻止代码的执行。为避免这种情况,您可以将该行替换为plt.show(block=False). 然后,您的应用程序将运行,但是,所描述的这篇文章,您的地块可能不会执行时就会显示出来。

因此,请尝试替换plt.show()

plt.show(block=False)
plt.pause(0.001)

以便在运行时查看绘图。最后,plt.show()在程序的最后添加一个以保持绘图打开,否则每个图形将在程序终止时关闭。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

python:当我输入一些东西时它会重置网址

当我使用python请求写入文件时缺少一些html标签

为什么当我尝试使用 python 在表中插入一些值时,输出没有?

当我有 IOError 时,Python While 循环停止

当我尝试从bash执行python脚本时,权限被拒绝?

当我在 powershell 中打开 python shell 时,我无法关闭它

当我在 python 中舍入 x 时,它返回 0.0

当我想用 python 绘制子图时如何插入标签和图例

当我将Python脚本放入函数中时,Python脚本将停止工作

当我使用 Python 脚本时,Blender 崩溃

当我从python调用vol时出现错误2

Python:当我调用“Sub”时,它不会被到达

当我只是“导入 numpy”时出现 Python 导入错误

当我从 php 调用 python 脚本时的权限/用户问题

当我在 python 中保存 docx 文件时,数据被损坏

不幸的是,应用程序已停止!当我尝试在mainActivity类中插入一些编码时

有人对python类了解很多吗?当我输入一些数据时,它的对象给了我错误

当我尝试在 proc.StandardInput.WriteLine("Y") 中写一些东西时,我的应用程序将挂起

当我没有文件标识符时,如何在python中关闭文件

当我运行我的 python 代码时,我的 tkinter 窗口不会响应

当我的python ddos脚本运行时出现错误

在数组中存储一个元素(Java),直到我输入一些东西来阻止它

当我不希望值重复时,在 python 中执行合并函数

当我尝试连接到数据库时,在 python 中执行多个错误

当我在 python 中放入一个函数时,我的代码不起作用

在Python中,当我使用upper方法时,为什么我必须在upper之后放()?

当我从Python中的Google搜索查询中提取链接时,我无法返回HTML链接

当我定义标签时,我在使用 tkinter 的 python 中收到此错误

当我在 python 中运行这段代码时,为什么我会出现输入错误?