我有一个python程序,用于将文件中的数据绘制为该文本文件中每一行的轮廓图。目前,我的界面中有3个独立的轮廓图。不管是从文件中读取数据还是在执行脚本之前将其加载到内存中,我只能从轮廓图获得〜6fps。
我还尝试仅使用一个轮廓线和其余法线图,但是速度仅增加到7fps。我不认为画几条线在计算上很费力。有没有办法使它大大加快?理想情况下,至少要达到30fps才是好事。
我绘制轮廓的方法是,对于数据的每一行,我都删除了前一条:
for coll in my_contour[0].collections:
coll.remove()
Run Code Online (Sandbox Code Playgroud)
并添加一个新的
my_contour[0] = ax[0].contour(x, y, my_func, [0])
Run Code Online (Sandbox Code Playgroud)
在代码的开头,我必须plt.ion()在添加绘图时对其进行更新。
任何帮助,将不胜感激。
谢谢
运行 abaqus nogui python 脚本时,我想将脚本的状态输出到终端。但是当我这样做时,例如:
print("Opening ODB...")
print("Plotting images...")
Run Code Online (Sandbox Code Playgroud)
我也试过:
print "Opening ODB..."
print "Plotting images..."
Run Code Online (Sandbox Code Playgroud)
和
sys.stdout.write("Opening ODB...")
sys.stderr.write("Plotting images...")
Run Code Online (Sandbox Code Playgroud)
没有任何东西输出到终端。尽管如此,我的代码运行良好,并完成了它应该做的一切。
有没有人有任何想法如何解决这个问题?
我想将我的表面方程拟合到一些数据中.我已经尝试过scipy.optimize.leastsq,但因为我无法指定边界,所以它给了我一个无法使用的结果.我也试过scipy.optimize.least_squares,但它给了我一个错误:
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)
我的等式是:
f(x,y,z)=(x-A+y-B)/2+sqrt(((x-A-y+B)/2)^2+C*z^2)
Run Code Online (Sandbox Code Playgroud)
应找到参数A,B,C,以便当以下点用于x,y,z时,上面的等式尽可能接近零:
[
[-0.071, -0.85, 0.401],
[-0.138, -1.111, 0.494],
[-0.317, -0.317, -0.317],
[-0.351, -2.048, 0.848]
]
Run Code Online (Sandbox Code Playgroud)
边界将是A> 0,B> 0,C> 1
我应该如何获得这样的合适?python中最好的工具是什么?我搜索了如何拟合3d表面的示例,但大多数涉及函数拟合的示例都是关于线或平面拟合.