Python

Python①matplotlibテンプレ

普段研究用に書いている様々なPythonプログラムを汎用にアレンジしたテンプレみたいなものをアップしていきます. 同業以外の方にも役に立てば幸いです. とはいえググればより詳細な解説やコード例はいくらでも出てくると思うので説明は最小限になっています.

matplotlibによるグラフ描画

ヘッダー付きの適当なCSVファイルをpandasによりデータフレームとして取得し, いろいろ装飾をしたものです.
Excelでのグラフ出力よりも痒いところに手が届きます.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
sns.set_style('whitegrid')
plt.figure(figsize=(14,8))

ax = plt.axes()
ax.set_facecolor('whitesmoke')

plt.rcParams['font.family'] ='sans-serif'# 使用するフォント
plt.rcParams['font.size'] = 24 # フォントの大きさ
plt.rcParams['lines.linewidth'] = 3
plt.text(1200,-40,"Preliminary!") # グラフの目盛りで表示位置を指定できる.
df   = pd.read_csv('LP86_like_model_S11_sweep.csv', index_col=0, header=0)
print(df.columns.values) # show all the headers

plt.plot(df.index, df['ybox=30'], label='0 washer', color='blue')
plt.plot(df.index, df['ybox=29'], label='3 washers', color='darkorange')
plt.plot(df.index, df['ybox=28'], label='6 washers', color='grey')
plt.plot(df.index, df['ybox=27'], label='9 washers', color='gold')
plt.plot(df.index, df['ybox=26'], label='12 washers', color='deepskyblue')
plt.plot(df.index, df['ybox=25'], label='15 washers', color='lime')

plt.title("Simulated S11 comparison")
plt.xlabel('MHz'); plt.ylabel('dB')
plt.xticks(np.arange(200,2201,50), rotation=90)
plt.xlim(200, 2300); plt.ylim(-70,0)
plt.legend(loc='upper left', bbox_to_anchor=(1, 1))
plt.show()

↑こんな具合です. ちなみにこれはCST Microwave Studioで伝送線路のシミュレーションを行ったときのものです.

今後は数値計算ライブラリやフィッティングライブラリの紹介をして行こうと思っています.

-Python

Copyright© ExpPhys_hacks , 2021 All Rights Reserved Powered by AFFINGER5.