oracleasm的python空间饼图

# -*- 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 name,total_mb,total_mb-free_mb used,free_mb percent from v$asm_diskgroup"
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])
    tablenames.append(row_data[0])
    datas.append(data)
    #print(tablenames)
    #print(data)
    #print(datas)

plt.style.use('seaborn')
engines = ['total', 'used', 'free']
labels=['total', 'used', 'free']
colors  = ["blue","red","green"]
explodes =[0,0,0.2]
#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)
            ax1.pie(x=datas[datasidx],colors=colors,startangle=0,explode=explodes,labels=datas[datasidx],autopct='%1.2f%%')
            ax1.set_title(tablenames[datasidx])

plt.tight_layout()
plt.show()

 

你可能感兴趣的:(oracleasm的python空间饼图)