掲題にある通りですが、温度場など計測した数値をエクセルでまとめたものをPandasで複数読み込み、読みとった値をNumpyに変換した後、各要素の平均をとったものをmatplotlibにて図示したく、以下のようにコードを書いてみたところ、エラーは出ないのですがprint文も含めて何も吐き出されません。どこから改善したらいいのか皆目見当もつかないので質問させていただきました。コメント文は自分なりの解釈を入れてあります。ご教示宜しくお願い致します。
Python
1import numpy as np 2import pandas as pd 3import glob 4import matplotlib.pyplot as plt 5 6 7def main() : 8 9 read_data() 10 print('a') 11 calc_data(sum, i) 12 print('b') 13 out_put(average) 14 print('finish') 15 16 17def read_data() : 18 19 print('1') 20 21 xlsx_files = glob.glob('*.xlsx') #同じフォルダ内のエクセルを検索 22 #pd.read_excel('data.xlsx', sheet_name=NONE) #読み込みたいファイルの名前 23 for x in xlsx_files : 24 25 i == 0 #読み込んだファイルの数(i)を定義。 26 df = pd.read(x) #dataframe(pandas)に計測値を格納 27 i += 1 #読み込んだファイルをカウント 28 arr_a = df.values #df(pandas)をarr_a(numpy)に変換 29 sum ==0 #numpy型配列で取った測定値の合計(sum)を定義 30 sum += arr_a 31 32 return sum, i 33 34def calc_data(sum, i) : 35 36 average == 0 #測定値の平均(average)を定義 37 average = sum / i 38 39 return average 40 41def output_data(average) : 42 43 n = (average.shape[0])*(average.shape[1]) #格子数を取得 44 45 x = np.linspace(0, 1, n) #Xの分割を定義 46 y = np.linspace(0, 1, n) #yの分割を定義 47 48 X, Y = np.meshgrid(x, y) 49 Z = average 50 51 plt.contour(X, Y, Z) #等値線を定義 52 53 plt.contour(X, Y, Z, levels=[0.06, 0.08, 0.1, 0.12, 0.14, 0.16, 0.18, 0.2, 0.22, 0.24,0.26]) #データを見て分割する値をいじること 54 cont.clabel(fmt='%1.2f', fontsize=8) 55 56 plt.gca().set_aspect('equal', adjustable='box') 57 plt.show() #図を出力
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/19 09:38