婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python實現雙軸組合圖表柱狀圖和折線圖的具體流程

Python實現雙軸組合圖表柱狀圖和折線圖的具體流程

熱門標簽:高德地圖標注收入咋樣 萊蕪電信外呼系統 銀川電話機器人電話 鶴壁手機自動外呼系統違法嗎 怎么辦理400客服電話 企業微信地圖標注 地圖標注多個 B52系統電梯外呼顯示E7 沈陽防封電銷電話卡

Python繪制雙軸組合的關鍵在plt庫的twinx()函數,具體流程:

1.先建立坐標系,然后繪制主坐標軸上的圖表;

2.再調用plt.twinx()方法;

3.最后繪制次坐標軸圖表。

import cx_Oracle
import xlrd
import xlwt
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import FuncFormatter

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
#設置坐標軸數值以百分比(%)顯示函數
def to_percent(temp, position):
  return '%1.0f'%(1*temp) + '%'
#字體設置
font2 = {'family' : 'Times New Roman',
'weight' : 'normal',
'size'   : 25,
}

conn=cx_Oracle.connect('用戶名/密碼@IP:端口/數據庫')
c=conn.cursor()
#sql查詢語句,多行用()括起來
sql_detail=("select substr(date1,6,10)date1,round(avg(r_qty))r_qty,round(avg(e_qty))e_qty,""round(avg(r_qty)/avg(e_qty),2)*100 userate,round(avg(uptime),2)*100 uptime from 表tp "
"tp where 條件  "
"group by date1 order by date1 ")  
                              
x=c.execute(sql_detail)
#獲取sql查詢數據                         
data=x.fetchall()
#print(data)

#新建Excel保存數據
xl=xlwt.Workbook()
ws=xl.add_sheet("ROBOT 30 DAYS MOVE ")
#ws.write_merge(0,1,0,4,"ROBOT_30_DAYS_MOVE")
for i,item in enumerate(data):
    for j,val in enumerate(item):
        ws.write(i,j,val)
xl.save("E:\\ROBOT_30_DAYS_MOVE.xls")

#讀取Excel數據
data1 = xlrd.open_workbook( "E:\\ROBOT_30_DAYS_MOVE.xls")
sheet1=data1.sheet_by_index(0)

date1=sheet1.col_values(0)
r_qty=sheet1.col_values(1)
e_qty=sheet1.col_values(2)
userate=sheet1.col_values(3)
uptime=sheet1.col_values(4)

#空值處理
for a in r_qty:
    if a=='':
        a=0
for a in e_qty:
    if a=='':
        a=0
for a in userate:
    if a=='':
        a=0
for a in uptime:
    if a=='':
        a=0
#將list元素str轉int類型
r_qty = list(map(int, r_qty))
e_qty = list(map(int, e_qty))
userate = list(map(int, userate))
uptime = list(map(int, uptime))
#添加平均值mean求平均
r_qty.append(int(np.mean(r_qty))) 
e_qty.append(int(np.mean(e_qty))) 
userate.append(int(np.mean(userate))) 
uptime.append(int(np.mean(uptime))) 
date1.append('AVG')

#x軸坐標
x=np.arange(len(date1))
bar_width=0.35

plt.figure(1,figsize=(19,10))
#繪制主坐標軸-柱狀圖
plt.bar(np.arange(len(date1)),r_qty,label='RBT_MOVE',align='center',alpha=0.8,color='Blue',width=bar_width)
plt.bar(np.arange(len(date1))+bar_width,e_qty,label='EQP_MOVE',align='center',alpha=0.8,color='orange',width=bar_width)

#設置主坐標軸參數
plt.xlabel('')
plt.ylabel('Move',fontsize=18)
plt.legend(loc=1, bbox_to_anchor=(0,0.97),borderaxespad = 0.) 
#plt.legend(loc='upper left')
for x,y in enumerate(r_qty):
    plt.text(x,y+100,'%s' % y,ha='center',va='bottom')
for x,y in enumerate(e_qty):
    plt.text(x+bar_width,y+100,'%s' % y,ha='left',va='top') 
plt.ylim([0,8000])

#調用plt.twinx()后可繪制次坐標軸
plt.twinx()

#次坐標軸參考線
target1=[90]*len(date1)
target2=[80]*len(date1)

x=list(range(len(date1)))
plt.xticks(x,date1,rotation=45)

#繪制次坐標軸-折線圖
plt.plot(np.arange(len(date1)),userate,label='USE_RATE',color='green',linewidth=1,linestyle='solid',marker='o',markersize=3)
plt.plot(np.arange(len(date1)),uptime,label='UPTIME',color='red',linewidth=1,linestyle='--',marker='o',markersize=3)

plt.plot(np.arange(len(date1)),target1,label='90%target',color='black',linewidth=1,linestyle='dashdot')
plt.plot(np.arange(len(date1)),target2,label='80%target',color='black',linewidth=1,linestyle='dashdot')

#次坐標軸刻度百分比顯示
plt.gca().yaxis.set_major_formatter(FuncFormatter(to_percent))

plt.xlabel('')
plt.ylabel('Rate',fontsize=18)
#圖列
plt.legend(loc=2, bbox_to_anchor=(1.01,0.97),borderaxespad = 0.) 
plt.ylim([0,100])
for x,y in enumerate(userate):
    plt.text(x,y-1,'%s' % y,ha='right',va='bottom',fontsize=14)
for x,y in enumerate(uptime):
    plt.text(x,y+1,'%s' % y,ha='left',va='top',fontsize=14) 

plt.title("ROBOT 30 DAYS MOVE")

#圖表Table顯示plt.table()
listdata=[r_qty]+[e_qty]+[userate]+[uptime]#數據
table_row=['RBT_MOVE','EQP_MOVE','USE_RATE(%)','UPTIME(%)']#行標簽
table_col=date1#列標簽
print(listdata)
print(table_row)
print(table_col)

the_table=plt.table(cellText=listdata,cellLoc='center',rowLabels=table_row,colLabels=table_col,rowLoc='center',colLoc='center')
#Table參數設置-字體大小太小,自己設置
the_table.auto_set_font_size(False)
the_table.set_fontsize(12)
#Table參數設置-改變表內字體顯示比例,沒有會溢出到表格線外面
the_table.scale(1,3)
#plt.show()

plt.savefig(r"E:\\ROBOT_30_DAYS_MOVE.png",bbox_inches='tight')
#關閉SQL連接
c.close()                                                      
conn.close()

結果顯示:

到此這篇關于Python實現雙軸組合圖表柱狀圖和折線圖的具體流程的文章就介紹到這了,更多相關python柱狀圖和折線圖內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 用Python做個個性的動畫掛件讓桌面不單調
  • 如何用Python寫一個簡單的通訊錄
  • python實現多個視頻文件合成畫中畫效果
  • 自己用python做的一款超炫酷音樂播放器
  • Python做個自定義動態壁紙還可以放視頻
  • 分析總結Python數據化運營KMeans聚類
  • python中的zip模塊
  • 總結分析python數據化運營關聯規則
  • python項目--使用Tkinter的日歷GUI應用程序
  • 如何使用Python做個自定義動態壁紙

標簽:銀川 葫蘆島 三亞 呼倫貝爾 安慶 呼倫貝爾 湘西 烏魯木齊

巨人網絡通訊聲明:本文標題《Python實現雙軸組合圖表柱狀圖和折線圖的具體流程》,本文關鍵詞  Python,實現,雙軸,組合,圖表,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python實現雙軸組合圖表柱狀圖和折線圖的具體流程》相關的同類信息!
  • 本頁收集關于Python實現雙軸組合圖表柱狀圖和折線圖的具體流程的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩视频免费观看高清完整版| 日韩欧美国产三级| 毛片av一区二区三区| 欧美日韩一二三区| 欧美美女视频在线观看| 欧美在线观看视频在线| 欧美日韩成人综合在线一区二区| 色婷婷久久一区二区三区麻豆| 91视频观看视频| 欧美日本乱大交xxxxx| 久久精品一区二区三区不卡| 成人免费小视频| 日本三级亚洲精品| 青青草成人在线观看| 婷婷中文字幕一区三区| 国产剧情av麻豆香蕉精品| 丁香激情综合五月| 日韩高清一区二区| 欧美日韩国产成人在线91| 国产日韩影视精品| 亚洲国产日韩在线一区模特| 午夜视频在线观看一区二区三区| 国模套图日韩精品一区二区| 日本韩国一区二区三区| 88在线观看91蜜桃国自产| 免费的国产精品| 高清成人在线观看| 91福利国产成人精品照片| 精品国产污污免费网站入口| 久久久精品国产免大香伊 | 久久99精品久久久久久| 一本色道久久加勒比精品| 欧美一区二区三级| 国产精品国产三级国产普通话三级| 一区二区三区国产精品| 美女视频网站黄色亚洲| 国产精品自拍毛片| 欧美日韩小视频| 成人av网站在线观看| 欧美成人a∨高清免费观看| 国产精品久久久久天堂| 亚洲精品一区在线观看| 亚洲欧美日韩综合aⅴ视频| 亚洲成人免费av| 国产麻豆精品在线观看| 欧美人与禽zozo性伦| 国产剧情一区二区三区| 久久亚洲欧美国产精品乐播| 成人激情文学综合网| 久久久一区二区| 欧美96一区二区免费视频| 欧美影院一区二区三区| 国产精品卡一卡二| 亚洲综合999| 国产91精品一区二区麻豆亚洲| 久久精品久久99精品久久| 91国偷自产一区二区开放时间| 亚洲国产精品国自产拍av| 久久疯狂做爰流白浆xx| 91亚洲精品一区二区乱码| 色呦呦日韩精品| 午夜久久久久久电影| 蜜桃一区二区三区四区| 欧美一区二区三区视频免费播放 | 亚洲欧美偷拍卡通变态| 亚洲高清久久久| 日韩电影在线看| 日本乱码高清不卡字幕| 国产一区二区成人久久免费影院| 91视频一区二区| 国产a精品视频| 欧美日韩综合在线| 成人av电影在线| 国产欧美日韩三区| 成人免费视频app| 国内一区二区视频| 日韩一区二区三区在线视频| 日日骚欧美日韩| 26uuu精品一区二区| 成人亚洲一区二区一| 亚洲一区二区三区爽爽爽爽爽 | 国产在线精品一区二区不卡了| 亚洲欧美一区二区久久| 日本韩国精品在线| 国产91丝袜在线播放九色| 国产精品久久久久7777按摩| 91一区二区三区在线观看| 亚洲综合免费观看高清完整版| 色又黄又爽网站www久久| 日韩欧美另类在线| 国产一级精品在线| 国产精品久久久久久久久免费丝袜 | 国产高清无密码一区二区三区| 中文字幕不卡在线| 91浏览器在线视频| 91在线播放网址| 调教+趴+乳夹+国产+精品| 欧美日韩国产综合一区二区| 制服丝袜激情欧洲亚洲| 国产毛片精品一区| 中文字幕综合网| 国产精品免费网站在线观看| 91精品国产综合久久福利| 欧美一级国产精品| 精品午夜久久福利影院| 欧美一区二区不卡视频| 亚洲精选免费视频| 91成人在线免费观看| 懂色av噜噜一区二区三区av| 美美哒免费高清在线观看视频一区二区| 欧美国产乱子伦 | 成人午夜av电影| 国产欧美日韩在线观看| 天天免费综合色| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产欧美日韩一区二区三区在线观看| 亚洲黄色av一区| 一区二区三区四区国产精品| 欧美变态tickle挠乳网站| 91美女片黄在线观看| 国产欧美精品一区二区三区四区| 欧美刺激午夜性久久久久久久| 91国产免费观看| 一本色道久久综合亚洲精品按摩| 精品女同一区二区| 一本大道综合伊人精品热热| 日本一区二区三区国色天香| 欧美福利视频一区| 国产精品 欧美精品| 精品亚洲免费视频| 欧美国产在线观看| 欧美第一区第二区| 精品久久久久香蕉网| 在线电影一区二区三区| 欧美午夜不卡在线观看免费| 欧洲一区二区av| 99精品欧美一区二区三区小说 | 色88888久久久久久影院按摩| 91色porny在线视频| www.色精品| a亚洲天堂av| 精品免费一区二区三区| 五月婷婷另类国产| 成人动漫在线一区| 国产一区二三区| jizz一区二区| 91在线porny国产在线看| www.色精品| 欧美色成人综合| 成人精品一区二区三区中文字幕| 久久精品视频免费| 国产精品久久午夜| 午夜久久久久久电影| 99久久免费国产| 中文字幕亚洲综合久久菠萝蜜| 亚洲综合色区另类av| 一区二区三区不卡视频在线观看| 亚洲午夜在线电影| 午夜不卡在线视频| 午夜免费欧美电影| 欧美精品一级二级三级| 91精品免费在线观看| 波多野结衣视频一区| 色综合久久综合中文综合网| 国产成人午夜精品影院观看视频| 欧美酷刑日本凌虐凌虐| 国产99久久久精品| 欧美日韩一区二区在线观看| 久久疯狂做爰流白浆xx| 粉嫩欧美一区二区三区高清影视| 成人黄色777网| 亚欧色一区w666天堂| 成人免费视频免费观看| 在线播放中文一区| 国产精品欧美一区喷水| 日本不卡中文字幕| 国产一区二区0| 欧美喷水一区二区| 樱桃国产成人精品视频| 亚洲色图制服诱惑| 国产精华液一区二区三区| 欧美另类久久久品| 欧美精品一区二区三| 精品国内二区三区| 中文字幕av资源一区| 中文字幕不卡在线观看| 自拍偷拍国产亚洲| 精品亚洲国内自在自线福利| 成人综合激情网| 国产精品1区2区| 欧美美女直播网站| 亚洲欧美一区二区三区久本道91| 精品夜夜嗨av一区二区三区| 在线观看亚洲一区| 亚洲一区在线免费观看| 色综合色狠狠综合色| 成人av在线网站| 色婷婷综合激情| 亚洲一区二区视频在线| 欧美私模裸体表演在线观看|