前提・実現したいこと
機械稼働状況をリアルタイムに監視するため稼働と停止時間を見分けるグラフを作成しています。グラフはなるべく綺麗に大きく見せたいので、y軸の目盛りを消して、少しでも見やすく表示したいです。y軸目盛を消す以外にもグラフを見やすく表示する方法があればそれも合わせ教えて下さい。
消したいy軸の画像
該当のソースコード
python
import time import japanize_matplotlib import RPi.GPIO as GPIO import datetime import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as mdates from time import sleep start=time.time() dissolution=1 #計測分解能[s] time1=0 #0秒 rate=0 # MCP3208からSPI通信で12ビットのデジタル値を取得。0から7の8チャンネル使用可 def readadc(adcnum,clockpin,mosipin,misopin,cspin): if adcnum> 7 or adcnum<0: return -1 GPIO.output(cspin,GPIO.HIGH) # I/Oが起きないようにCSを1にする GPIO.output(clockpin,GPIO.LOW)# CLK を0に設定しておく GPIO.output(cspin,GPIO.LOW)# I/Oを始めるためにCSを0にする commandout=adcnum# adcnum は 0 (CH0)なので、commandout は 00000000 commandout |=0x18 # スタートビット+シングルエンドビット# 0x18 は 00011000 なので、commandout は 00011000 になる。 commandout<<=3 # commandout は 11000000 になる。この上位5ビットを使い、制御信号の 11000 を送る。 for i in range(5): if commandout & 0x80: GPIO.output(mosipin,GPIO.HIGH) else: GPIO.output(mosipin,GPIO.LOW) commandout<<=1 GPIO.output(clockpin,GPIO.HIGH) GPIO.output(clockpin,GPIO.LOW) adcout=0 # データ保存変数 adcout の初期化 for i in range(13):# 13ビット読む(ヌルビット+12ビットデータ) GPIO.output(clockpin,GPIO.HIGH) GPIO.output(clockpin,GPIO.LOW) adcout<<=1 if i>0 and GPIO.input(misopin)==GPIO.HIGH: adcout |=0x1 GPIO.output(cspin,GPIO.HIGH) return adcout #GPIOへアクセスする番号をBCMの番号で指定することを宣言 GPIO.setmode(GPIO.BCM) # ピンの名前を変数として定義# Raspberry Pi のモードとして、GPIOの番号を物理番号ではなく役割番号で指定する SPICS=8 SPIMISO=9 SPIMOSI=10 SPICLK=11 # SPI通信用の入出力を定義 出力ピンなのか入力ピンなのか指定する GPIO.setup(SPICLK,GPIO.OUT) GPIO.setup(SPIMOSI,GPIO.OUT) GPIO.setup(SPIMISO,GPIO.IN) GPIO.setup(SPICS,GPIO.OUT) def plot_operation(fig, ax): data=pd.read_csv('mydata'+nowday+'.csv', header=None, names=[0,1], index_col=0, parse_dates=True) x=data.index y=data.iloc[:,0] d_today = datetime.date.today() dt_start = datetime.datetime(d_today.year, d_today.month, d_today.day, 7, 0) df_start = pd.DataFrame([[0, 0]], index=[dt_start]) d_tomorrow = d_today + datetime.timedelta(days=1) dt_end = datetime.datetime(d_tomorrow.year, d_tomorrow.month, d_tomorrow.day) df_end = pd.DataFrame([[0, 0]], index=[dt_end]) data = df_start.append([data, df_end]) data = data.groupby(level=0).last() data = data.asfreq('min', fill_value=0) plt.bar(x,y,width=0.0007,color="blue") plt.gca().xaxis.set_major_locator(mdates.HourLocator(interval=1)) plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%H:%M')) plt.gca().set_xlim(left=datetime.datetime(d_today.year, d_today.month, d_today.day, 7, 0),right=dt_end) plt.draw() plt.subplots_adjust(left=0.03, right=0.96, bottom=0.2, top=1) plt.pause(1) fig = plt.figure(figsize=(8.7, 3.5)) ax = fig.add_subplot() now=datetime.datetime.now() nowday='{0:%Y%m%d}'.format(now)#日付でcsv保存するため while True: try: inputVal0=readadc(0,SPICLK,SPIMOSI,SPIMISO,SPICS)# CH0の信号を取得する プログラム運転(緑) inputVal1=readadc(1,SPICLK,SPIMOSI,SPIMISO,SPICS)#アラーム(赤) if inputVal0 > 2000 or inputVal1 > 2000:#on/offを判断する光量を変更(緑) #print(inputVal0) time1=time1+1 print('稼働中') print(now.strftime('%H:%M')) print(time1) if time1>=1: plot_operation(fig, ax) time1=0 else: print('停止') print(now.strftime('%H:%M')) sleep(1) except FileNotFoundError: continue except KeyboardInterrupt: break
まだ回答がついていません
会員登録して回答してみよう