Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # coding: utf-8
- import os
- import numpy as np
- import matplotlib as mpl
- import matplotlib.pyplot as plt
- import matplotlib.ticker as ticker
- from scipy.signal import argrelmax
- data = np.genfromtxt("./20170609_205740_test_lps25h.csv",delimiter=",", skip_header=2)
- data = data.T
- #最小、最大、マージンの計算
- max_pres=max(data[1])
- min_pres=min(data[1])
- diff_pres = max_pres - min_pres
- margin_pres = diff_pres*0.2
- max_temp=max(data[2])
- min_temp=min(data[2])
- diff_temp = max_temp
- margin_temp = diff_temp*0.2
- #ピークの算出
- peek_pres=argrelmax(data[1])
- peek_temp=argrelmax(data[2])
- fig, host = plt.subplots()
- #2軸のセット
- par2=host.twinx()
- '''気圧のグラフ設定'''
- #データのセット、線赤色、マーカー丸、項目ラベルセット
- p1, =host.plot(data[0],data[1], "r-", marker="o", label = 'Pressure')
- #ピークラベルのプロット
- for I in peek_pres:
- data_buff = float(data[1][I])
- peek = round(data_buff,3)
- host.text(data[0][I],data[1][I],peek,ha = 'center', va = 'bottom')
- #y1軸ラベル設定
- host.set_ylabel("Pressure(hPa)",fontsize=14)
- #offsetをしない
- host.set_yticklabels(host.get_yticks())
- #y1軸の範囲
- host.set_ylim([min_pres - margin_pres,max_pres + margin_pres])
- #y1軸の有効小数点を3桁にする
- host.yaxis.set_major_formatter(ticker.FormatStrFormatter('%.3f'))
- '''温度のグラフ設定'''
- #データのセット、線赤色、マーカー丸、項目ラベルセット
- p2, =par2.plot(data[0],data[2],"b-", marker="D" ,label = 'Temperature')
- #ピークラベルのプロット
- for I in peek_temp:
- data_buff = float(data[2][I])
- peek = round(data_buff,1)
- par2.text(data[0][I],data[2][I],peek,ha = 'center', va = 'bottom')
- #y2軸ラベル設定
- par2.set_ylabel("Temperature($℃$)",fontsize=14)
- #y2軸の範囲
- par2.set_ylim([0,max_temp + margin_temp])
- #offsetなし
- par2.set_yticklabels(par2.get_yticks())
- #y1軸の有効小数点を1桁にする
- par2.yaxis.set_major_formatter(ticker.FormatStrFormatter('%.1f'))
- #x軸ラベル設定
- host.set_xlabel("Time(sec.)",fontsize=14)
- #x軸の範囲
- host.set_xlim([0,4])
- #目盛りの設定
- host.xaxis.set_minor_locator(ticker.MultipleLocator(0.1))
- host.xaxis.set_major_locator(ticker.MultipleLocator(1))
- #タイトル設定
- host.set_title("LPS25H",fontsize=18)
- #グリットの設定
- host.grid(b=True, which='major', color='y', linestyle='-')
- #凡例の設定
- lines = [p1, p2]
- host.legend([p1, p2],[l.get_label() for l in lines])
- #グラフを画像に出力png,svgの2種類
- plt.savefig("graph.png",bbox_inches="tight")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement