在Matplotlib中更改颜色条的缩放比例/单位

时间:2018-09-26 19:32:27

标签: python matplotlib plot fits aplpy

我正在绘制几张FITS图像以及旁边的彩色条。我主要使用Aplpy绘制图像,包括颜色条。据我了解,Aplpy确实使用/依赖于matplotlib作为其绘图机制,因此,如果有一种方法可以在Aplpy或Matplotlib中做我想做的事,我认为应该可以。

图像的默认单位为Jy(天文单位)。但是这些值都非常小,最大值通常为0.01 Jy。当我显示一个色条时,刻度标签以相应的单位显示,并且有很多零并且占用了太多空间。

有什么办法可以使颜色条的单位显示为mJy(Jy的1/1000)?

例如,当前的刻度是:0.000、0.002、0.004,... 我希望它们是:0、2、4 ...

解决方案可能是缩放FITS图像本身,或以某种方式调整颜色条。无论哪种方式,我都不知道该怎么做...

谢谢。

1 个答案:

答案 0 :(得分:0)

我想有很多选择。其中之一是向色条提供FuncFormatter

func = lambda x,pos: "{:g}".format(x*1000)
fmt = matplotlib.ticker.FuncFormatter(func)

plt.colorbar(..., format=fmt)

现在,我不知道Aplpy返回什么,并且该问题没有显示任何代码,因此我无法为该特定情况提供有效的解决方案。