2016-10-18 7 views
0

私の現在のコードは、csvファイルからリストを取得し、ユーザが選択してプロットできるようにヘッダをリストします。パンダを使用してセカンダリY軸をプロットする?

import pandas as pd 

df = pd.DataFrame.from_csv('log40a.csv',index_col=False) 

from collections import OrderedDict 
headings = OrderedDict(enumerate(df,1)) 
for num, heading in headings.items(): 
    print("{}) {}".format(num, heading)) 

print ('Select X-Axis') 
xaxis = int(input()) 

print ('Select Y-Axis') 
yaxis = int(input()) 

df.plot(x= headings[xaxis], y= headings[yaxis]) 

私の最初の質問です。セカンダリY軸を追加するにはどうすればいいですか?私はmatplotlibを使って最初に人物を作ってから最初のyaxisをxaxisでプロットし、次に同じことを2番目のyaxisに行います。しかし、私はパンダでどのように行われているのか分かりません。それは似ていますか?

私はそれを行うにはmatplotlibのを使ってみましたが、それは私にエラーを与えた:

fig1 = plt.figure(figsize= (10,10)) 
ax = fig1.add_subplot(211) 
ax.plot(headings[xaxis], headings[yaxis], label='Alt(m)', color = 'r') 
ax.plot(headings[xaxis], headings[yaxis1], label='AS_Cmd', color = 'blue') 

エラー:あなたが上にプロットしたい列名を持つ配列を作成する必要が

ValueError: Unrecognized character a in format string 

答えて

0

y軸。

たとえばあなたはそれではなく、文字列の配列になるように、あなたは、あなたの入力方法を変更する必要があります、それを実行するには「」

df.plot(x= headings[xaxis], y=headings[yaxis.split(",")], figsize=(15, 10)) 

でのy列をdelimite場合。

+0

インデックスと列の部分について詳しく教えてください。私は、私が彼にプロットしたい列を私に与える必要があるので、事前に列番号を指定しようとしていません。もし私があなたがしたことをしたら、列が設定されます。 –

+0

A)入力を配列に設定し、将来の値を追加するか、またはB)ユーザーが複数のメソッドを入力できるようにし、文字列を分割された値の配列に分割する必要があります。おそらく最も簡単な分割方法の回答を更新しました。 – sdhaus

+0

私はあなたが今何を意味するかを見ます。しかし、私があなたの解決策を試したとき。私はエラーが発生しましたTypeError:unhashable型: 'list'。注:文字列を受け取るようにyaxis = input()を変更しました。 –

関連する問題