成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Matplotlib繪圖雙縱坐標(biāo)軸設(shè)置及控制設(shè)置時(shí)間格式

開發(fā) 開發(fā)工具
今天利用matplotlib繪圖,想要完成一個(gè)雙坐標(biāo)格式的圖。

 雙y軸坐標(biāo)軸圖

今天利用matplotlib繪圖,想要完成一個(gè)雙坐標(biāo)格式的圖。 

  1. fig=plt.figure(figsize=(20,15)) 
  2. ax1=fig.add_subplot(111) 
  3. ax1.plot(demo0719['TPS'],'b-',label='TPS',linewidth=2) 
  4. ax2=ax1.twinx()#這是雙坐標(biāo)關(guān)鍵一步 
  5. ax2.plot(demo0719['successRate']*100,'r-',label='successRate',linewidth=2)  

橫坐標(biāo)設(shè)置時(shí)間間隔 

  1. import matplotlib.dates as mdate 
  2. ax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d %H:%M:%S'))#設(shè)置時(shí)間標(biāo)簽顯示格式 
  3. plt.xticks(pd.date_range(demo0719.index[0],demo0719.index[-1],freq='1min'))  

縱坐標(biāo)設(shè)置顯示百分比 

  1. import matplotlib.ticker as mtick 
  2.  
  3. fmt='%.2f%%' 
  4.  
  5. yticks = mtick.FormatStrFormatter(fmt) 
  6.  
  7. ax2.yaxis.set_major_formatter(yticks) 

 知識(shí)點(diǎn)

在matplotlib中,整個(gè)圖像為一個(gè)Figure對(duì)象。在Figure對(duì)象中可以包含一個(gè),或者多個(gè)Axes對(duì)象。每個(gè)Axes對(duì)象都是一個(gè)擁有自己坐標(biāo)系統(tǒng)的繪圖區(qū)域。其邏輯關(guān)系如下: 

 一個(gè)Figure對(duì)應(yīng)一張圖片。

Title為標(biāo)題。Axis為坐標(biāo)軸,Label為坐標(biāo)軸標(biāo)注。Tick為刻度線,Tick Label為刻度注釋。

Title為標(biāo)題。Axis為坐標(biāo)軸,Label為坐標(biāo)軸標(biāo)注。Tick為刻度線,Tick Label為刻度注釋。 

 add_subplot()

  • 官網(wǎng)matplotlib.pyplot.figure
    pyplot.figure()是返回一個(gè)Figure對(duì)象的,也就是一張圖片。
  • add_subplot(args, *kwargs)

The Axes instance will be returned.

twinx()

  • matplotlib.axes.Axes method2 
  1. ax = twinx() 

create a twin of Axes for generating a plot with a sharex x-axis but independent y axis. The y-axis of self will have ticks on left and the returned axes will have ticks on the right.

意思就是,創(chuàng)建了一個(gè)獨(dú)立的Y軸,共享了X軸。雙坐標(biāo)軸!

類似的還有twiny()

ax1.xaxis.set_major_formatter

  • set_major_formatter(formatter)

Set the formatter of the major ticker

ACCEPTS: A Formatter instance

DateFormatter()

  • class matplotlib.dates.DateFormatter(fmt, tz=None)
    這是一個(gè)類,創(chuàng)建一個(gè)時(shí)間格式的實(shí)例。

strftime方法(傳入格式化字符串)。

 

  1. strftime(dt, fmt=None) 
  2.  
  3. Refer to documentation for datetime.strftime. 
  4.  
  5. fmt is a strftime() format string. 

 

FormatStrFormatter()

  • class matplotlib.ticker.FormatStrFormatter(fmt)

Use a new-style format string (as used by str.format()) to format the tick. The field formatting must be labeled x

定義字符串格式。

plt.xticks

  • matplotlib.pyplot.xticks(args, *kwargs)
  1. return locs, labels where locs is an array of tick locations and 
  2. # labels is an array of tick labels. 
  3. locs, labels = xticks() 
  4.  
  5. set the locations of the xticks 
  6. xticks( arange(6) ) 
  7.  
  8. set the locations and labels of the xticks 
  9. xticks( arange(5), ('Tom''Dick''Harry''Sally''Sue') ) 

 

代碼匯總

  1. #coding:utf-8 
  2.  
  3. import matplotlib.pyplot as plt 
  4.  
  5. import matplotlib as mpl 
  6.  
  7. import matplotlib.dates as mdate 
  8.  
  9. import matplotlib.ticker as mtick 
  10.  
  11. import numpy as np 
  12.  
  13. import pandas as pd 
  14.  
  15. import os 
  16.  
  17. mpl.rcParams['font.sans-serif']=['SimHei'] #用來(lái)正常顯示中文標(biāo)簽 
  18.  
  19. mpl.rcParams['axes.unicode_minus']=False #用來(lái)正常顯示負(fù)號(hào) 
  20.  
  21. mpl.rc('xtick', labelsize=20) #設(shè)置坐標(biāo)軸刻度顯示大小 
  22.  
  23. mpl.rc('ytick', labelsize=20) 
  24.  
  25. font_size=30 
  26.  
  27. #matplotlib.rcParams.update({'font.size': 60}) 
  28.  
  29. %matplotlib inline 
  30.  
  31. plt.style.use('ggplot'
  32.  
  33. data=pd.read_csv('simsendLogConvert_20160803094801.csv',index_col=0,encoding='gb2312',parse_dates=True
  34.  
  35. columns_len=len(data.columns) 
  36.  
  37. data_columns=data.columns 
  38.  
  39. for x in range(0,columns_len,2): 
  40.  
  41. print('第{}列'.format(x)) 
  42.  
  43. total=data.ix[:,x] 
  44.  
  45. print('第{}列'.format(x+1)) 
  46.  
  47. successRate=(data.ix[:,x+1]/data.ix[:,x]).fillna(0) 
  48.  
  49. yLeftLabel=data_columns[x] 
  50.  
  51. yRightLable=data_columns[x+1] 
  52.  
  53. print('------------------開始繪制類型{}曲線圖------------------'.format(data_columns[x])) 
  54.  
  55. fig=plt.figure(figsize=(25,20)) 
  56.  
  57. ax1=fig.add_subplot(111) 
  58.  
  59. #繪制Total曲線圖 
  60.  
  61. ax1.plot(total,color='#4A7EBB',label=yLeftLabel,linewidth=4) 
  62.  
  63. # 設(shè)置X軸的坐標(biāo)刻度線顯示間隔 
  64.  
  65. ax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d %H:%M:%S'))#設(shè)置時(shí)間標(biāo)簽顯示格式 
  66.  
  67. plt.xticks(pd.date_range(data.index[0],data.index[-1],freq='1min'))#時(shí)間間隔 
  68.  
  69. plt.xticks(rotation=90) 
  70.  
  71. #設(shè)置雙坐標(biāo)軸,右側(cè)Y軸 
  72.  
  73. ax2=ax1.twinx() 
  74.  
  75. #設(shè)置右側(cè)Y軸顯示百分?jǐn)?shù) 
  76.  
  77. fmt='%.2f%%' 
  78.  
  79. yticks = mtick.FormatStrFormatter(fmt) 
  80.  
  81. # 繪制成功率圖像 
  82.  
  83. ax2.set_ylim(0,110) 
  84.  
  85. ax2.plot(successRate*100,color='#BE4B48',label=yRightLable,linewidth=4) 
  86.  
  87. ax2.yaxis.set_major_formatter(yticks) 
  88.  
  89. ax1.set_xlabel('Time',fontsize=font_size) 
  90.  
  91. ax1.set_ylabel(yLeftLabel,fontsize=font_size) 
  92.  
  93. ax2.set_ylabel(yRightLable,fontsize=font_size) 
  94.  
  95. legend1=ax1.legend(loc=(.02,.94),fontsize=16,shadow=True
  96.  
  97. legend2=ax2.legend(loc=(.02,.9),fontsize=16,shadow=True
  98.  
  99. legend1.get_frame().set_facecolor('#FFFFFF'
  100.  
  101. legend2.get_frame().set_facecolor('#FFFFFF'
  102.  
  103. plt.title(yLeftLabel+'&'+yRightLable,fontsize=font_size) 
  104.  
  105. plt.savefig('D:\\JGT\\Work-YL\\01布置的任務(wù)\\04繪制曲線圖和報(bào)告文件\\0803\\出圖\\{}-{}'.format(yLeftLabel.replace(r'/',' '),yRightLable.replace(r'/',' ')),dpi=300)  

參考

 

  1. Vami-繪圖: matplotlib核心剖析 
  2. Secondary axis with twinx(): how to add to legend? 

 

 

責(zé)任編輯:龐桂玉 來(lái)源: segmentfault
相關(guān)推薦

2015-07-29 10:25:05

數(shù)據(jù)開發(fā)產(chǎn)品必修課

2013-07-29 04:57:47

iOS開發(fā)iOS開發(fā)學(xué)習(xí)時(shí)間設(shè)置和格式輸出

2024-12-13 09:42:38

javascripmatch方法

2009-12-22 09:04:35

ACL時(shí)間控制列表

2022-07-25 14:17:04

JS應(yīng)用開發(fā)

2023-04-07 08:02:30

圖形編輯器對(duì)齊功能

2017-04-06 15:49:18

機(jī)器人控制方式特點(diǎn)

2009-12-24 17:41:12

ADO Connect

2011-01-19 14:32:17

Thunderbird設(shè)置

2012-02-02 10:23:41

2013-04-01 14:40:34

App內(nèi)購(gòu)家長(zhǎng)蘋果

2010-07-26 09:57:21

telnet pop

2010-09-29 16:51:10

訪問(wèn)控制

2013-05-30 09:58:50

RouterosADSL負(fù)載均衡技術(shù)

2009-12-03 15:24:39

雙wan路由器設(shè)置

2019-03-24 19:16:35

FedoraSSH系統(tǒng)運(yùn)維

2011-07-27 14:48:21

iPhone Cocos2D 坐標(biāo)

2012-10-11 15:28:18

設(shè)置默認(rèn)打印機(jī)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 超碰最新在线 | 国产成人免费视频网站高清观看视频 | 国产电影一区二区三区爱妃记 | 中文字幕在线免费视频 | 亚洲国产精品一区二区三区 | 国产精品视频一二三区 | 91精品国产欧美一区二区 | 国产精品久久久久久久久久免费看 | 国产精彩视频在线观看 | 国产一区二区在线免费观看 | 欧美男人天堂 | 国产精品一区二区在线 | 日本a∨视频 | 在线观看黄色电影 | 欧美人妖网站 | 国产乱码精品一品二品 | 亚洲欧美在线一区 | 国产精品一区二区三区在线 | 国产视频一区二区在线观看 | 黄瓜av | 中文字幕乱码视频32 | 不卡视频在线 | 一级日韩 | 亚洲视频国产视频 | 亚洲免费视频一区二区 | 欧美成人一级 | 日韩成人在线观看 | 午夜免费在线观看 | 久久国产高清 | 精品一区二区三区在线观看 | 91精品国产91久久久久久吃药 | 日韩免费视频一区二区 | 欧美精品99 | 久久成人人人人精品欧 | 成人免费三级电影 | 亚洲天堂男人的天堂 | 久久国产精品亚洲 | 久久精品99 | 亚洲第一av | 99精品电影| 天天干天天操天天看 |