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