1. 程式人生 > >Matplotlib繪圖雙縱座標軸設定及控制設定時間格式

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