Python Matplotlib Colorbar科学符号库

Python Matplotlib Colorbar科学符号库,第1张

Python Matplotlib Colorbar科学符号库

一种可能的解决方案是按以下问题子类化

ScalarFormatter
固定其数量级:为多个子图设置具有固定指数和有效数字的科学计数法

这样,你会调用该格式与大小作为参数的顺序

order
OOMFormatter(-2,mathText=False)
mathText
设置为false可以从问题中获取符号,即

,将其设置为True时,将给出。

然后,您可以通过colorbar的

format
参数将formatter设置为colorbar 。

import numpy as np; np.random.seed(0)import matplotlib.pyplot as pltimport matplotlib.tickerclass OOMFormatter(matplotlib.ticker.ScalarFormatter):    def __init__(self, order=0, fformat="%1.1f", offset=True, mathText=True):        self.oom = order        self.fformat = fformat        matplotlib.ticker.ScalarFormatter.__init__(self,useOffset=offset,useMathText=mathText)    def _set_order_of_magnitude(self):        self.orderOfMagnitude = self.oom    def _set_format(self, vmin=None, vmax=None):        self.format = self.fformat        if self._useMathText:  self.format = r'$mathdefault{%s}$' % self.formatz = (np.random.random((10,10)) - 0.5) * 0.2fig, ax = plt.subplots()plot = ax.contourf(z)cbar = fig.colorbar(plot, format=OOMFormatter(-2, mathText=False))plt.show()

对于<3.1的matplotlib版本,该类需要如下所示:

class OOMFormatter(matplotlib.ticker.ScalarFormatter):    def __init__(self, order=0, fformat="%1.1f", offset=True, mathText=True):        self.oom = order        self.fformat = fformat        matplotlib.ticker.ScalarFormatter.__init__(self,useOffset=offset,useMathText=mathText)    def _set_orderOfMagnitude(self, nothing):        self.orderOfMagnitude = self.oom    def _set_format(self, vmin, vmax):        self.format = self.fformat        if self._useMathText: self.format = '$%s$' % matplotlib.ticker._mathdefault(self.format)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5462330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存