Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # coding: utf-8
  3. import os
  4. import numpy as np
  5. import matplotlib as mpl
  6. import matplotlib.pyplot as plt
  7. import matplotlib.ticker as ticker
  8. from scipy.signal import argrelmax
  9.  
  10. data = np.genfromtxt("./20170609_205740_test_lps25h.csv",delimiter=",", skip_header=2)
  11. data = data.T
  12. #最小、最大、マージンの計算
  13. max_pres=max(data[1])
  14. min_pres=min(data[1])
  15. diff_pres = max_pres - min_pres
  16. margin_pres = diff_pres*0.2
  17. max_temp=max(data[2])
  18. min_temp=min(data[2])
  19. diff_temp = max_temp
  20. margin_temp = diff_temp*0.2
  21. #ピークの算出
  22. peek_pres=argrelmax(data[1])
  23. peek_temp=argrelmax(data[2])
  24. fig, host = plt.subplots()
  25. #2軸のセット
  26. par2=host.twinx()
  27. '''気圧のグラフ設定'''
  28. #データのセット、線赤色、マーカー丸、項目ラベルセット
  29. p1, =host.plot(data[0],data[1], "r-", marker="o", label = 'Pressure')
  30.  
  31. #ピークラベルのプロット
  32. for I in peek_pres:
  33. data_buff = float(data[1][I])
  34. peek = round(data_buff,3)
  35. host.text(data[0][I],data[1][I],peek,ha = 'center', va = 'bottom')
  36.  
  37. #y1軸ラベル設定
  38. host.set_ylabel("Pressure(hPa)",fontsize=14)
  39. #offsetをしない
  40. host.set_yticklabels(host.get_yticks())
  41. #y1軸の範囲
  42. host.set_ylim([min_pres - margin_pres,max_pres + margin_pres])
  43. #y1軸の有効小数点を3桁にする
  44. host.yaxis.set_major_formatter(ticker.FormatStrFormatter('%.3f'))
  45. '''温度のグラフ設定'''
  46. #データのセット、線赤色、マーカー丸、項目ラベルセット
  47. p2, =par2.plot(data[0],data[2],"b-", marker="D" ,label = 'Temperature')
  48.  
  49. #ピークラベルのプロット
  50. for I in peek_temp:
  51. data_buff = float(data[2][I])
  52. peek = round(data_buff,1)
  53. par2.text(data[0][I],data[2][I],peek,ha = 'center', va = 'bottom')
  54.  
  55. #y2軸ラベル設定
  56. par2.set_ylabel("Temperature($℃$)",fontsize=14)
  57. #y2軸の範囲
  58. par2.set_ylim([0,max_temp + margin_temp])
  59. #offsetなし
  60. par2.set_yticklabels(par2.get_yticks())
  61. #y1軸の有効小数点を1桁にする
  62. par2.yaxis.set_major_formatter(ticker.FormatStrFormatter('%.1f'))
  63. #x軸ラベル設定
  64. host.set_xlabel("Time(sec.)",fontsize=14)
  65. #x軸の範囲
  66. host.set_xlim([0,4])
  67. #目盛りの設定
  68. host.xaxis.set_minor_locator(ticker.MultipleLocator(0.1))
  69. host.xaxis.set_major_locator(ticker.MultipleLocator(1))
  70. #タイトル設定
  71. host.set_title("LPS25H",fontsize=18)
  72. #グリットの設定
  73. host.grid(b=True, which='major', color='y', linestyle='-')
  74. #凡例の設定
  75. lines = [p1, p2]
  76. host.legend([p1, p2],[l.get_label() for l in lines])
  77. #グラフを画像に出力png,svgの2種類
  78. plt.savefig("graph.png",bbox_inches="tight")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement