Python 尝试打印数组时出现Unicode错误?

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

我有一个非常简单的代码,试图将生成的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[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')