現在以下のプログラムで試行錯誤しております。
このプログラムは(x.z)の二次元ファイルのテキストを読み込んで、buta.txtに(x.z)の情報を
[(例)
xが一の時の(x,z)
xが二の時の(x,z)
xが三の時の(x,z)
・・・・
xがnの時の(x,z) xを任意の数で]
保存して、別にプロットするというものです。
import matplotlib.pyplot as plt # maplotlibのpyplotをpltという名前でimportする import numpy as np x_list=[] # x_listを定義 (空のリストを作成) z_list=[] # z_listを定義 f=open(r'C:\Users\Administartor\Desktop\oosaka\python\真のデータ.txt') # プロットしたいデータが入っているファイルをr(読み込み) t(テキスト)モードで読み込む ## データを読み込み,x_listとy_listに値を格納する for line in f: data = line[:-1].split(' ') x_list.append(float(data[0])) z_list.append(float(data[1])) ### 描画する x_list = x_list.tolist() z_list = z_list.tolist() np.savetxt("buta.txt", np.hstack([x_list.reshape(-1,1), z_list.reshape(-1,1)]), delimiter=",") plt.plot(x_list, z_list) #プロットするためのデータ指定: ここではx軸にx_list,z軸にz_listを指定。折れ線グラフ plt.plot(x_list, z_list,color='bLUE',linewidth=4.0) #赤色で出力.線の太さを4.0pt plt.xlabel('X') # x軸のラベル plt.ylabel('Z') # y軸のラベル #plt.legend(loc='best') # legend # その他,描画用オプション plt.xticks(fontsize=10) plt.yticks(fontsize=10) plt.grid(True) #グラフの枠を作成 plt.show() # 描画結果を出力する。必ず書く。
reshapeはlistが対応していないみたいで、エラーが出てしまい調べてみると
tolist()という関数が使えるという情報がありました。しかしながら以下のようなエラーが出てどうやら対応していないのかそれとも私のプログラムが間違っているのか、わからず質問することにしました。
ご教授のほどよろしくお願いいたします。
Traceback (most recent call last): File "<ipython-input-17-e9dd3566947c>", line 1, in <module> runfile('C:/Users/Administartor/Desktop/oosaka/python/表示成功(txt変更) - コピー.py', wdir='C:/Users/Administartor/Desktop/oosaka/python') File "C:\Users\Administartor\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile execfile(filename, namespace) File "C:\Users\Administartor\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "C:/Users/Administartor/Desktop/oosaka/python/表示成功(txt変更) - コピー.py", line 25, in <module> x_list = x_list.tolist() AttributeError: 'list' object has no attribute 'tolist'
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。