matplotlib作為Python常見的二維圖形,那么,怎么去使用Python修改這類的二維圖形呢?比如,去修改matplotlib.pyplot.colorbar的位置,讓其做好對應工作,保證相關的位置對齊,以此用來進行對齊主圖,具體下面給大家解答。
問題描述
像這樣的圖,我想把右邊的colorbar設置成和主圖一樣高度
方法
0.plt.colorbar參數介紹
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.colorbar.html?highlight=colorbar#matplotlib.pyplot.colorbar
1.plt.colorbar(im,fraction=0.046,pad=0.04,shrink=1.0)
fraction可以從0.035-0.046調節以找到合適大小
但當圖像的長、高對比過大時,可能不起作用
2.make_axes_locatable
這是matplotlib包里的一個函數
from mpl_toolkits.axes_grid1 import make_axes_locatable im=plt.imshow(data) divider=make_axes_locatable(plt.gca()) cax=divider.append_axes("right",size="5%",pad="3%") plt.colorbar(im,cax=cax)
不適用于有投影參數的axe(會報錯),如cartopy的GeoAxes
3.make_axes_locatables升級版
https://stackoverflow.com/questions/18195758/set-matplotlib-colorbar-size-to-match-graph Matthias import matplotlib.pyplot as plt from mpl_toolkits import axes_grid1 def add_colorbar(im,aspect=20,pad_fraction=0.5,**kwargs): """Add a vertical color bar to an image plot.""" divider=axes_grid1.make_axes_locatable(im.axes) width=axes_grid1.axes_size.AxesY(im.axes,aspect=1./aspect) pad=axes_grid1.axes_size.Fraction(pad_fraction,width) current_ax=plt.gca() cax=divider.append_axes("right",size=width,pad=pad) plt.sca(current_ax) return im.axes.figure.colorbar(im,cax=cax,**kwargs)
用法示例
im=plt.imshow(np.arange(200).reshape((20,10))) add_colorbar(im)
4.手動給colorbar添加一個axe
https://stackoverflow.com/questions/18195758/set-matplotlib-colorbar-size-to-match-graph Fei Yao
import matplotlib.pyplot as plt import numpy as np fig=plt.figure() ax=plt.axes() im=ax.imshow(np.arange(100).reshape((10,10))) #Create an axes for colorbar.The position of the axes is calculated based on the position of ax. #You can change 0.01 to adjust the distance between the main image and the colorbar. #You can change 0.02 to adjust the width of the colorbar. #This practice is universal for both subplots and GeoAxes. cax=fig.add_axes([ax.get_position().x1+0.01,ax.get_position().y0,0.02,ax.get_position().height]) plt.colorbar(im,cax=cax)#Similar to fig.colorbar(im,cax=cax)
效果展示
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來更多幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/128431.html
摘要:大家還記得上一篇文章來學點吧從一個斗圖小工具開始中最后提到的幾個問題么,我們這次就來解決一下其中難度最大的一個文本居中看,我把代碼優化了上次之后,我偷偷把代碼優化了,現在的方法長這樣創建表情圖調試用生成表情包對的,我把那些老長老長 showImg(https://segmentfault.com/img/bVbeDVL?w=250&h=250); 大家還記得上一篇文章0.來學點Pyth...
摘要:前言本篇主要介紹基本數據類型,以文本進度條為例,介紹庫的使用。 前言 本篇主要介紹基本數據類型,以文本進度條為例,介紹time庫的使用。 并在最后對蟒蛇繪制的代碼進...
摘要:的名稱來自于面板數據和數據分析。以下的內容主要以為主。終端輸入導入相關模塊是一種類似于一維數組的對象,它由一組數據各種數據類型以及一組與之相關的數據標簽即索引組成。如果僅傳入一個序列,則會重新索引行函數的參數參數說明用作索引的新序列。 原文鏈接 numPy pandas的數據結構介紹 簡介 Pandas [1] 是python的一個數據分析包,最初由AQR Capital Mana...
摘要:由在語言區域中被視為標點符號的字符組成的字符串。給定作為見上文的返回值,將其轉換為要格式化的對象。選項表示對浮點表示類型和整數表示類型使用下劃線作為千位分隔符。 上一篇文章:Python標準庫---17、內置異常下一篇文章:Python標準庫---19、文本處理服務:re正則表達式操作 字符串常量 此模塊中定義的常量為: string.ascii_letters下文所述 ascii...
摘要:已獲原作者授權原系列地址控件控件用來展示一些文字短消息和控件有些類似但在展示文字方面比要靈活比如控件可以改變字體而控件只能使用一種字體它提供了一個換行對象以使文字可以斷為多行它可以支持文字的自動換行及對齊這里要澄清一下前面提到的控件可以改變 已獲原作者授權. 原系列地址: Python Tkinter Message 控件 Message 控件用來展示一些文字短消息. Message...
閱讀 919·2023-01-14 11:38
閱讀 891·2023-01-14 11:04
閱讀 750·2023-01-14 10:48
閱讀 2039·2023-01-14 10:34
閱讀 956·2023-01-14 10:24
閱讀 835·2023-01-14 10:18
閱讀 506·2023-01-14 10:09
閱讀 583·2023-01-14 10:02