2016-04-06 8 views
2

私は、Pandasでuft-8でエンコードされたテキストファイルを読み込んでMatplotlibにフィールドを表示するツールを構築しています。それを訓練目的のための貧しい人のテレメトリディスプレイと考えてください。コードがキリル文字のフィールドを表示していないが、txtファイルの他のフィールドを表示できるという問題があります。プロットはフィールドがプロットに「ハードコーディングされている」ときキリル文字を表示します。ここで キリル文字を含むPandas配列をMatplotlibに表示する方法

がコードである(おそらく、私はこのようなものでニュービーだ表示されます):私はdata.twoフィールドの表示をコメントする場合

# -*- coding: utf-8 -*- 
import matplotlib.pyplot as plt # Plotting library 
import numpy as np # Numpy library for arrays 
import matplotlib.cbook as cbook 
import pandas as pd 
from pylab import * 
import matplotlib as mpl 
from pylab import rcParams 
import matplotlib.cm as cm 
from pandas import set_option 
set_option("display.max_rows", 10) #Allows to control how Pandas displays the result 

# Set image size 
rcParams['figure.figsize'] = 12, 10 

# Read the rndz telemetry file with pandas 
filename = "data.txt" 
data = pd.read_table(filename, sep="\s+") 

# 361 is the size of the txt file 
for i in range(361): 

    plt.clf() # Clears the screen 

    plt.xlim(0.5,8) # Set the x-limits on the display 
    plt.ylim(1,7) # Set the y-limits on the display 

    plt.text(5.9,6.70,str(data.one[i])) # Adds regular text 

    #This field is the one giving me trouble 
    plt.text(5.9,6.40,str(data.two[i]) # Add cyrillic text 

    #The field below is displayed properly on the plot 
    plt.text(1.25,6.7,u'заглавие', color="#ffffff", fontdict=font) # Add title 

    xticks([]), yticks([]) # Erase the axes 

    plt.show() # Render the plot 
    plt.pause(1) # Wait before the next loop executes 

は、コードが細かい実行されます。しかし、コードはここで、キリル文字のテキストでそのフィールドからテキストをプロットするように要求されている場合は、私が取得していますものです:私は上のWindows 7の任意の考えでEnthoughキャノピーのPython 2.7を実行しています

'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128) 

何間違っている?

答えて

1

read_table機能にencoding=引数を渡すことで、あなたのUTF8エンコードされたファイルをバック読む:

data = pd.read_table(filename, sep="\s+", encoding="utf-8") 
+0

感謝を。それが助けになりました。私もデフォルトのエンコーディングを設定するのに役立つ[this thread](http://stackoverflow.com/questions/28544686/unicodeencodeerror-ascii-codec-cant-encode-characters-in-position-0-5-ordin)スクリプト – fonsi

関連する問題