# -*- coding: utf-8 -*-
# -*- coding: gbk -*-
import sys
import cx_Oracle
import os
import numpy as np
import matplotlib.pyplot as plt
import math
#os.environ['NLS_LANG']='"SIMPLIFIED CHINESE_CHINA.ZHS16GBK"'
os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8'
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
os.environ['PATH']='E:\instantclientwin32_jb51\instantclient_11_2;%path%'
os.environ['TNS_ADMIN']= 'E:\instantclientwin32_jb51\instantclient_11_2'
os.environ['ORACLE_BASE'] = 'E:\instantclientwin32_jb51\instantclient_11_2'
os.environ['ORACLE_HOME'] = 'E:\instantclientwin32_jb51\instantclient_11_2'
#os.environ['PATH']='.;%path%'
#os.environ['TNS_ADMIN']= '.'
#os.environ['ORACLE_BASE'] = '.'
#os.environ['ORACLE_HOME'] = '.'
c = ['silver','r','b','g']
plt.rcParams['font.sans-serif'] = ['SimHei']
#fig=plt.figure(figsize=(12,10))
#fig, ax = plt.subplots(1,1,figsize=(4,5))
conn=cx_Oracle.connect("system","","")
curs=conn.cursor()
sql="select segment_name,fs1,fs2,fs3,fs4 from lzjbsi.suipian where bz='严重100%' and rownum<16 order by fs1+fs2+fs3+fs4 desc"
curs.execute(sql)
tablenames=[]
datas=[]
data=[]
for row_data in curs: # add table rows
data=[]
data.append(row_data[1])
data.append(row_data[2])
data.append(row_data[3])
data.append(row_data[4])
tablenames.append(row_data[0])
datas.append(data)
#print(tablenames)
#print(data)
#print(datas)
plt.style.use('seaborn')
engines = ['FS1', 'FS2', 'FS3', 'FS4']
colors = 'rgby'
#fig, axes = plt.subplots(ncols=len(tablenames))
lentable=len(tablenames)
fig, axes = plt.subplots(math.ceil(lentable/5),5,figsize=(12,8))
for kidx in range(math.ceil(lentable/5)):
for kk in range(min((lentable-kidx*5),5)):
#print(kidx,kk)
ax1=axes[kidx][kk]
idx = np.arange(len(datas[kk]))/2
datasidx=kidx*5+kk
n = 1
width = 0.3
print(kidx,kk,idx)
for i in range(n):
#print(i)
ax1.bar(idx + i * width, datas[datasidx], width, color='b', alpha=0.5)
xpos = idx + (i) * width
ypos = datas[datasidx]
for j in range(len(ypos)):
ax1.text(xpos[j], ypos[j]/2, str(ypos[j]), ha='center', color='r', va='center', rotation=45)
ax1.legend(engines)
ax1.set_xticks(idx)
#ax1.set_xlabel('FS(0-25)(25-50)(50-75)(75-100)')
ax1.set_xticklabels(['FS1', 'FS2', 'FS3', 'FS4'], rotation=45, fontsize='small')
ax1.set_ylabel('block(s)')
ax1.set_title(tablenames[datasidx])
plt.tight_layout()
plt.show()