我正在尝试制作wave包的动画并将其另存为电影.除了储蓄之外的一切都在起作用.你能告诉我我做错了什么吗?进入生产线时,ani.save('MovWave.mp4')他告诉我:
writer = writers.list()[0]
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)
我当然试着谷歌搜索,但我甚至不知道这意味着什么.
更新:我ffmpeg现在可以在控制台中调用.它说我安装了ffmpeg版本0.10.7-6:0.10.7-0jon1~precise.我更新了代码并运行了程序,但现在我收到以下错误:
Traceback (most recent call last):
ani.save('MovWave.mpeg', writer="ffmpeg")
writer.grab_frame()
dpi=self.dpi)
self.canvas.print_figure(*args, **kwargs)
self.figure.dpi = origDPI
self.dpi_scale_trans.clear().scale(dpi, dpi)
self._mtx = np.identity(3)
from numpy import eye
File "<frozen importlib._bootstrap>", line 1609, in _handle_fromlist
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
Run Code Online (Sandbox Code Playgroud)
更新2:显然,当使用python 3.3作为doctorlove指出时有一个错误.我现在正在尝试使用python 2.7.现在它创建了一个mpeg文件,但它无法播放,只有大约150 kB.
更新3:好的,所以我在Win7机器上尝试了完全相同的代码,它也适用于python 3.3.但我有同样的问题,我之前使用的是python 2.7.创建的mpeg文件无法播放,只有几百kB.
#! coding=utf-8
import numpy as np
import matplotlib.pyplot as …Run Code Online (Sandbox Code Playgroud) 你能帮我解决一下这个问题吗?我不知道出了什么问题.来自的单个绘图img可以很好地绘制,但动画模块会给出错误.Traceback说:
Traceback (most recent call last):
File "/home/ckropla/workspace/TAMM/Sandkasten.py", line 33, in <module>
ani = animation.ArtistAnimation(fig, img, interval=20, blit=True,repeat_delay=0)
File "/home/ckropla/.pythonbrew/pythons/Python-3.3.1/lib/python3.3/site-packages/matplotlib/animation.py", line 818, in __init__
TimedAnimation.__init__(self, fig, *args, **kwargs)
File "/home/ckropla/.pythonbrew/pythons/Python-3.3.1/lib/python3.3/site-packages/matplotlib/animation.py", line 762, in __init__
*args, **kwargs)
File "/home/ckropla/.pythonbrew/pythons/Python-3.3.1/lib/python3.3/site-packages/matplotlib/animation.py", line 481, in __init__
self._init_draw()
File "/home/ckropla/.pythonbrew/pythons/Python-3.3.1/lib/python3.3/site-packages/matplotlib/animation.py", line 824, in _init_draw
for artist in f:
TypeError: 'AxesImage' object is not iterable
Run Code Online (Sandbox Code Playgroud)
码:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
def FUNCTION(p,r,t):
k_0,dx,c = p
x,y …Run Code Online (Sandbox Code Playgroud) 我在冻结我的程序时遇到问题.我把它缩小到了scipy模块.我试图冻结的porgramm是:
from scipy import signal
signal.hann(1000)
Run Code Online (Sandbox Code Playgroud)
我的设置脚本是:
import sys
from cx_Freeze import setup, Executable
build_exe_options = {}
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup( name = "Some name",
version = "1.0",
author="My name",
description = "My GUI application!",
options = {"build_exe": build_exe_options},
executables = [Executable("Script_Name.py", base=base)])
# ^CHANGE THIS NAME!!!
Run Code Online (Sandbox Code Playgroud)
这是错误消息的图片.我也尝试在设置文件中包含scipy.signal
build_exe_options = {"includes":"scipy.signal"}
Run Code Online (Sandbox Code Playgroud)
但它没有任何好处.请帮我.
我正在尝试学习类,有人可以向我解释为什么这段代码不起作用.我想当从类中调用函数时,"self"会被自动省略,但是解释器告诉我参数"a"缺失(他认为self = 10).
#! coding=utf-8
class test:
def __init__(self):
"do something here"
def do(self,a):
return a**2
d = test.do
print(d(10))
Run Code Online (Sandbox Code Playgroud) 地球人!
我正在尝试使用该FuncAnimation模块进行动画,但我的代码只生成一个帧然后停止.似乎它没有意识到他需要更新什么.你能帮我解决问题吗?
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
x = np.linspace(0,2*np.pi,100)
def animate(i):
PLOT.set_data(x[i], np.sin(x[i]))
print("test")
return PLOT,
fig = plt.figure()
sub = fig.add_subplot(111, xlim=(x[0], x[-1]), ylim=(-1, 1))
PLOT, = sub.plot([],[])
animation.FuncAnimation(fig, animate, frames=len(x), interval=10, blit=True)
plt.show()
Run Code Online (Sandbox Code Playgroud) 我想知道在ttk.Treeview中折叠和扩展分支的命令.
这是一个简约的示例代码:
#! coding=utf-8
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
tree = ttk.Treeview(root)
tree.pack(fill=tk.BOTH,expand=True)
tree.insert("", index="end",iid="Main", text="main branch")
tree.insert("Main", index="end", text="Stuff 1")
tree.insert("Main", index="end", text="Stuff 2")
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
什么命令打开和/或扩展"主分支"?必须有一个,因为在点击加号和减号时会调用它们.
标题说明了一切.我正在寻找一种方法来编写2D阵列中方位角的计算更优雅.这与以下事实有关:arcus函数仅定义在从0到pi或-pi/2到pi/2的范围内.有任何想法吗?
import numpy as np
import matplotlib.pyplot as plt
#Setup
x = np.linspace(-10, 10, 200)
y = np.linspace(-10, 10, 200)
x, y = np.meshgrid(x, y)
r = (x**2+y**2)**0.5
#get array of azimuthal angles
phi = np.arctan(y/x)
phi = np.where(np.less_equal(x, 0), phi+np.pi, phi)
phi = np.where(np.logical_and(np.greater_equal(x, 0), np.less_equal(y, 0)), phi+2*np.pi, phi)
#Test the calculation
# make a pizza with one slice missing
z = np.where(np.logical_and(np.less_equal(r, 5), np.less_equal(phi, 2*np.pi*(1-1/12)), np.less_equal(0, phi)), 1, 0)
#plot it
plt.imshow(z, extent=[-10, 10, -10, 10], origin="Upper")
plt.colorbar() …Run Code Online (Sandbox Code Playgroud) 我想学习python类,但我不明白.为什么这个简单的例子不返回"6"?它返回了<function TEST.f at 0x00000000029ED378>.我也尝试了,TEST.f()但他告诉我,这个论点self不见了.self不仅应该存在于类中,而python会自动填充它吗?
#! coding=utf-8
class TEST:
def __init__(self):
self.x = 6
def f(self):
return(self.x)
print(TEST.f)
Run Code Online (Sandbox Code Playgroud)