Matplotlib繪圖雙縱座標軸設定及控制設定時間格式
雙y軸座標軸圖
今天利用matplotlib
繪圖,想要完成一個雙座標格式的圖。
12345 | fig=plt.figure(figsize=(20,15))ax1=fig.add_subplot(111)ax1.plot(demo0719['TPS'],'b-',label='TPS',linewidth=2)ax2=ax1.twinx()#這是雙座標關鍵一步ax2.plot(demo0719['successRate']*100,'r-',label='successRate',linewidth=2) |
橫座標設定時間間隔
123 | import matplotlib.dates asmdateax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d %H:%M:%S'))#設定時間標籤顯示格式plt.xticks(pd.date_range(demo0719.index[0],demo0719.index[-1],freq='1min')) |
縱座標設定顯示百分比
1234 | import matplotlib.ticker asmtickfmt='%.2f%%'yticks=mtick.FormatStrFormatter(fmt)ax2.yaxis.set_major_formatter(yticks) |
知識點
在matplotlib中,整個影象為一個Figure物件。在Figure物件中可以包含一個,或者多個Axes物件。每個Axes物件都是一個擁有自己座標系統的繪圖區域。其邏輯關係如下:
一個Figure
對應一張圖片。
Title為標題。Axis為座標軸,Label為座標軸標註。Tick為刻度線,Tick Label為刻度註釋。1
Title為標題。Axis為座標軸,Label為座標軸標註。Tick為刻度線,Tick Label為刻度註釋。
add_subplot()
The Axes instance will be returned.
twinx()
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.
意思就是,建立了一個獨立的Y軸,共享了X軸。雙座標軸!
類似的還有twiny()
ax1.xaxis.set_major_formatter
Set the formatter of the major ticker
ACCEPTS: A Formatter instance
DateFormatter()
strftime方法(傳入格式化字串)。
123 | strftime(dt,fmt=None)Refer todocumentation fordatetime.strftime.fmt isastrftime()format string. |
FormatStrFormatter()
Use a new-style format string (as used by str.format()) to format the tick. The field formatting must be labeled x
定義字串格式。
plt.xticks
123456789 | # return locs, labels where locs is an array of tick locations and# labels is an array of tick labels.locs,labels=xticks()# set the locations of the xticksxticks(arange(6))# set the locations and labels of the xticksxticks(arange(5),('Tom','Dick','Harry','Sally','Sue')) |
程式碼彙總
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | #coding:utf-8import matplotlib.pyplot asplt import matplotlib asmplimport matplotlib.dates asmdateimport matplotlib.ticker asmtickimport numpy asnpimport pandas aspdimport osmpl.rcParams['font.sans-serif']=['SimHei']#用來正常顯示中文標籤mpl.rcParams['axes.unicode_minus']=False#用來正常顯示負號mpl.rc('xtick',labelsize=20)#設定座標軸刻度顯示大小mpl.rc('ytick',labelsize=20)font_size=30#matplotlib.rcParams.update({'font.size': 60})%matplotlibinlineplt.style.use('ggplot')data=pd.read_csv('simsendLogConvert_20160803094801.csv',index_col=0,encoding='gb2312',parse_dates=True)columns_len=len(data.columns)data_columns=data.columnsforxinrange(0,columns_len,2):print('第{}列'.format(x))total=data.ix[:,x]print('第{}列'.format(x+1))successRate=(data.ix[:,x+1]/data.ix[:,x]).fillna(0)yLeftLabel=data_columns[x]yRightLable=data_columns[x+1]print('------------------開始繪製型別{}曲線圖------------------'.format(data_columns[x]))fig=plt.figure(figsize=(25,20))ax1=fig.add_subplot(111)#繪製Total曲線圖ax1.plot(total,color='#4A7EBB',label=yLeftLabel,linewidth=4)# 設定X軸的座標刻度線顯示間隔ax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d %H:%M:%S'))#設定時間標籤顯示格式plt.xticks(pd.date_range(data.index[0],data.index[-1],freq='1min'))#時間間隔plt.xticks(rotation=90)#設定雙座標軸,右側Y軸ax2=ax1.twinx()#設定右側Y軸顯示百分數fmt='%.2f%%'yticks=mtick.FormatStrFormatter(fmt)# 繪製成功率影象ax2.set_ylim(0,110)ax2.plot(successRate*100,color='#BE4B48',label=yRightLable,linewidth=4)ax2.yaxis.set_major_formatter(yticks)ax1.set_xlabel('Time',fontsize=font_size)ax1.set_ylabel(yLeftLabel,fontsize=font_size)ax2.set_ylabel(yRightLable,fontsize=font_size)legend1=ax1.legend(loc=(.02,.94),fontsize=16,shadow=True)legend2=ax2.legend(loc=(.02,.9),fontsize=16,shadow=True)legend1.get_frame().set_facecolor('#FFFFFF')legend2.get_frame().set_facecolor('#FFFFFF')plt.title(yLeftLabel+'&'+yRightLable,fontsize=font_size)plt.savefig('D:\\JGT\Work-YL\\01佈置的任務\\04繪製曲線圖和報告檔案\\0803\出圖\\{}-{}'.format(yLeftLabel.replace(r'/',' '),yRightLable.replace(r'/',' ')),dpi=300) |
參考
相關推薦
Matplotlib繪圖雙縱座標軸設定及控制設定時間格式
雙y軸座標軸圖 今天利用matplotlib繪圖,想要完成一個雙座標格式的圖。 fig=plt.figure(figsize=(20,15)) ax1=fig.add_subplot(111) ax1.plot(demo07
python matplotlib繪圖,修改座標軸刻度為文字
工作中偶爾需要做客流分析,用pyplot 庫繪圖。一般情況下, x 軸刻度預設顯示為數字。例如: 我希望x 軸刻度顯示為星期日期。 查詢pyplot 文件, 發現了 xtick() 函式可以修改刻
Android開機自啟動程式設定及控制方法
Android系統通過應用程式自行在系統中登記註冊事件(即Intent)來響應系統產生的各類訊息。 例如Android實現系統開機自啟動程需要在Manifest中加入如下Intent-filter及許可權Uses-permission即可。 <intent-f
設定程式需要的時間格式
Application.UpdateFormatSettings := False; LongDateFormat:= 'yyyy-MM-dd'; ShortDateFormat:= 'yyyy-MM
DateEdit控制元件時間格式轉換
dateEdit控制元件時間預設格式是:2009/1/12這種形式的,那麼怎麼轉化為20090112這種形式呢?dateEdit控制元件預設是的格式屬性是:將紅框位置修改為下圖所示,即可實現效果:修改後
matplotlib繪圖,設定座標格式,比如科學計數法、公式表示等
matplotlib繪圖 前言 匯入必要包 未設定座標格式 科學計數表示 前言 繪製實驗結果時,很多時候預設設定得到的圖形,並不能滿足我們的需求。如果我們希望繪製出來的圖形更加騷一點,更好看一點,我們怎麼做呢
Python視覺化中Matplotlib(3.線條的詳細樣式及線性、儲存圖片、plot的詳細風格和樣式)、背景色、點和線的詳細設定
1.修改線條的樣式: linestyle、color、marker(標記) ''' 顏色 color:修改顏色,可以簡寫成c 樣式 linestyle='--' 修改線條的樣式 可以簡寫成 ls 標註 marker : 標註 線寬 linewidth: 設
Python視覺化中Matplotlib繪圖(2.設定範圍、標籤、標題、圖例(詳細引數))
1.為繪製的圖新增範圍 import matplotlib.pyplot as plt # 匯入繪圖模組 import numpy as np # 匯入需要生成資料的numpy模組 '''新增範圍''' y = np.arange(0,10,1) plt.plo
Python視覺化中的Matplotlib繪圖(1.畫圖,網格,子圖,畫正餘弦圖,座標軸界限,畫圓,)
1.一張基本的圖示包含的元素; · x軸和y軸 以及他們的刻度線 、標籤、繪圖區域 import matplotlib.pyplot as plt # 匯入繪圖模組 import numpy as np # 匯入需要生成資料的num
Sap許可權相關設定、控制及傳輸
1、許可權相關概念簡介 一、首先我們先來介紹以下這幅圖(PFCG),這裡麵包含幾個許可權相關的概念。 以上圖為例,我們來簡單的介紹上圖中的幾個概念: 1、Role:一堆TCODE的集合,當然還包含有TCODE必備的“許可權物件”、“許可權欄位”、“欄
SAP使用者許可權控制設定及開發
建立使用者SU01 事務碼:SU01,使用者主資料的維護,可以建立、修改、刪除、鎖定、解鎖、修改密碼等 預設:可以設定使用者的起始選單、登入的預設語言、數字顯示格式、以及日期和時間的格式設定 引
wpf 中DataGrid 控制元件的樣式設定及使用
本次要實現的效果為: 這個DataGrid需要繫結一個集合物件,所以要先定義一個Experience類,包含三個欄位 /// <summary> /// 定義工作經歷類 /// </summary> p
matplotlib圖例、標籤、座標軸刻度的字型設定
把字型都設定成為“Times New Roman” plt.figure(figsize=[15,8]) plt.scatter(X, Y, label = 'RealValue') plt.plot(
matplotlib繪圖之中文標題、座標軸標籤亂碼問題
import matplotlib.pyplot as plt import matplotlib as mpl # 解決中文亂碼問題 #sans-serif就是無襯線字型,是一種通用字型族。 #常見
MFC學習之 對話方塊設定背景顏色及控制元件透明的方法
對話方塊設定背景色之後控制元件不透明的問題。 1.對話方塊設定背景色: 方法1:(用OnPaint()) 在Dlg.h中:宣告 afx_msg void OnPaint(); HICON m_hIcon; 在Dl
Python繪圖總結(Matplotlib篇)之字型、文字及註釋
Matplotlib使用總結圖 %matplotlib inline import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] # 用來正常顯示中文標籤 plt
matplotlib繪圖例項:pyplot、pylab模組及作圖引數
Matplotlib.pyplot繪圖例項 {使用pyplot模組} matplotlib繪製直線、條形/矩形區域 import numpy as np import matplotlib.pyplot as plt t = np.arange(-1, 2, .01) s = np.sin(2 * np
Android螢幕適配3-動態獲取螢幕寬高及動態設定控制元件寬高
1、問題 在螢幕適配中,要求應用在不同的螢幕上顯示一樣的效果時,我們的佈局可以採用百分比來定位,也就是 layout_weight,但對於一些層層巢狀或更加複雜的情況下,使用百分比的效果並不是很好,頁無法解決一些問題,比如文字大小。 2、解決思路 我們
android螢幕適配的全攻略3-動態獲取手機螢幕寬高及動態設定控制元件寬高
1.獲取手機螢幕寬高: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenWidth = dm.width
ESXI雙網絡卡負載均衡設定及測試
ESXI雙網絡卡負載均衡設定 參考文件 ESXI伺服器的四個網口負載均衡 NIC Team(負載均衡) 環境描述: 伺服器使用兩張2口千兆網絡卡,vmnic0~3共4口,伺服器安裝ESXI系統,虛擬出兩張網絡卡vSwitch0(vmnic0和vmnic2)和v