วันอังคารที่ 21 มกราคม พ.ศ. 2563

Python กราฟ ดึงข้อมูล mySQL mariaDB โดยเงี่อนไขวันที่

# -*- coding: utf-8 -*-
import csv
from datetime import datetime
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

#### Import Code Files #####
import test_connect_mysql
cursor = test_connect_mysql.cursor
mydb = test_connect_mysql.mydb

cursor.execute('select date_in, SUM(no_tag) as t_no_tag, SUM(barcode)  as t_barcode  from error_bar_tag GROUP BY date_in');
rows = cursor.fetchall()
#str(rows)[0:300]
cursor.close
mydb.close

df = pd.DataFrame( [[ij for ij in i] for i in rows] )
df.rename(columns={0: 'date_in', 1:'t_no_tag', 2:'t_barcode'}, inplace=True);
df = df.sort_values(['date_in'], ascending=[1]);

#print(df['no_tag'])
#tag_error = len(df['no_tag'])
#print(tag_error)

date_show = []
date_in = df['date_in']
for i in range(len(date_in)):
    try:
        date_show.append(str(datetime.date(date_in[i])))
    except:
        date_in[i] = 'date_in[i] decode error'

print("count date_show = " + str(len(date_show)))
for x in date_show:
  print(x)
############## Polt Grash ###############
fp = mpl.font_manager.FontProperties(family='Tahoma',size=10)
x = date_show
no_tag = df['t_no_tag']
barcode = df['t_barcode']
ax = plt.gca()
ax.set_title(u'ทดสอบแสดงข้อมูลไม่อ่าน Tag',fontname='Tahoma',fontsize='13')
ax.set_xlabel(u'ป/ด/ว',fontname='Tahoma',fontsize='10')
ax.set_ylabel(u'จำนวนครั้ง',labelpad=-1,fontname='Tahoma',fontsize='10')
ax.plot(x,barcode,'-og' ,alpha=1)
ax.plot(x,no_tag,'-or' ,alpha=1)
ax.legend([u'บาร์โค๊ต',u'ไม่อ่าน Tag',],prop=fp,loc=0,fancybox=1,shadow=1)
plt.grid()
ax.xaxis.set_label_coords(1.05, -0.05)
ax.yaxis.set_label_coords(1.05, 0.5)
ax.tick_params(axis='x',rotation=35 ,labelsize=7, length=5)
plt.show()