Изменить масштабирование / Единицы цветовой шкалы в Matplotlib - PullRequest
0 голосов
/ 26 сентября 2018

Я строю несколько изображений FITS вместе с цветовой шкалой рядом с ними.Я в основном использую Aplpy для построения изображений, в том числе цветовой шкалы.Насколько я понимаю, Aplpy использует / полагается на matplotlib для своих механизмов построения графиков, поэтому, если есть способ сделать то, что я хочу, в Aplpy или Matplotlib, я думаю, это должно работать.

Единицы по умолчаниюизображения в Jy (астрономическая единица).Но все значения довольно малы, где максимальная величина обычно составляет 0,01 Джи.Когда я показываю цветную полосу, метки тиков находятся в соответствующих единицах и имеют много нулей и занимают слишком много места.

Можно ли каким-либо образом отображать единицы измерения цветовой шкалы в мДж (1/1000 от Jy)?

Например, в настоящее время тики: 0,000, 0,002, 0,004, ..Я хочу, чтобы они были: 0, 2, 4, ...

Решение может заключаться в том, чтобы либо масштабировать само изображение FITS, либо каким-либо образом настроить цветовую полосу.В любом случае, я не знаю, как это сделать ...

Заранее спасибо.

1 Ответ

0 голосов
/ 27 сентября 2018

Полагаю, вариантов много.Одним из них будет предоставление FuncFormatter для цветовой шкалы,

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

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

Теперь я не знаю, что возвращает Aplpy, и вопрос не показывает никакого кода, поэтому я не могу предоставить рабочуюрешение для этого конкретного случая.

...