Python 尝试打印数组时出现Unicode错误?
我有一个非常简单的代码,试图将生成的numpy数组Python 尝试打印数组时出现Unicode错误?,python,python-2.7,matplotlib,unicode,Python,Python 2.7,Matplotlib,Unicode,我有一个非常简单的代码,试图将生成的numpy数组pos作为t的函数来绘制,但是我得到了一个随机的unicode错误。我以前从来没有出现过这个错误,我不知道它的意思是什么,也不知道它为什么会出现在这段代码中: import numpy as np import matplotlib.pyplot as plt h = 0.5 x_0 = 1 w = 1 t = np.arange(0, 20, h) pos, v = np.zeros(len(t)), np.zeros(len(t)) pos
pos
作为t
的函数来绘制,但是我得到了一个随机的unicode错误。我以前从来没有出现过这个错误,我不知道它的意思是什么,也不知道它为什么会出现在这段代码中:
import numpy as np
import matplotlib.pyplot as plt
h = 0.5
x_0 = 1
w = 1
t = np.arange(0, 20, h)
pos, v = np.zeros(len(t)), np.zeros(len(t))
pos[0], v[0] = x_0, 0
def a(pos):
return -w**2 * pos
for i in range(1, len(t)):
# Stormer-Verlet method
pos[i] = pos[i-1] + h*(v[i-1] + 0.5*h*a(pos[i-1]))
v[i] = v[i-1] + 0.5*h*a(pos[i-1]) + 0.5*h*a(pos[i])
# Plotting position as a function of time
plt.plot(t, pos, label='Störmer-Verlet approximation')
在
plt.plot
行,我得到了一个错误:UnicodeDecodeError:“ascii”编解码器无法解码第2位的字节0xc3:序号不在范围(128)
。我还打印了pos
,并确认它是一个长度为100的数组(与t
的长度相同)。有人知道为什么会发生这种情况吗?python 2没有utf-8作为默认编码。使用以下任一方法定义编码:
# coding=utf-8
# -*- coding: utf-8 -*-
应该这样做。参考
然后,您需要在标签前面加上:
我认为您的错误是关于您试图使用标签值打印的特殊字符
ö
。试着用一个普通的o
?哦,哇,我从来没有想过要在那里改变。这很有效,谢谢你!还要将源文件保存在UTF-8中,以匹配声明的编码。
plt.plot(t, pos, label=u'Störmer-Verlet approximation')