我正在尝试使用matplotlib将颜色条添加到我的图像中.当我试图强制用科学记数法书写刻度标签时,问题出现了.如何在颜色条的刻度中强制使用科学记数法(即1x10 ^ 0,2x10 ^ 0,...,1x10 ^ 2等)?
例如,让我们用它的颜色条创建和绘制图像:
import matplotlib as plot
import numpy as np
img = np.random.randn(300,300)
myplot = plt.imshow(img)
plt.colorbar(myplot)
plt.show()
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到以下图像:
但是,我希望看到科学记数法中的ticklabels ...是否有任何一行命令来执行此操作?否则,那里有任何提示吗?谢谢!
我试图绘制具有相同比例的字段.上面的图像值比下面的图像值高10倍,但它们在imshow中变成了相同的颜色.如何将两者设置为具有相同的颜色比例?
我添加了我正在使用的代码图像..
def show_field(field1,field2):
fig = plt.figure()
ax = fig.add_subplot(2, 1, 1)
ax.imshow(field1,cmap=plt.cm.YlGn)
ax.set_adjustable('box-forced')
ax.autoscale(False)
ax2 = fig.add_subplot(2, 1, 2)
ax2.set_adjustable('box-forced')
ax2.imshow(field2,cmap=plt.cm.YlGn)
ax2.autoscale(False)
plt.show()
Run Code Online (Sandbox Code Playgroud) 我编写了用于校准图像(暗框和平场)的脚本......这是代码的一部分
for n in range(len(img)):
with pyfits.open(img[n], mode='update', memmap=True) as im:
imgg = im[0].data
header = im[0].header
imgg.astype(float)
imgg = (imgg - dd) / df
imgg[np.isnan(imgg)] = 1
imgg.astype(int)
plt.imshow(imgg, cmap=plt.cm.Greys_r, vmin=0.5, vmax=1.5)
plt.show()
Run Code Online (Sandbox Code Playgroud)
深色框架和平场图像的代码进行校正...这部分当我使用的绘图vmin
和vmax
,我得到正确的图片,但我不知道该怎么vmin
和vmax
工作。我需要在图像数据 ( imgg
)上应用它,因为当我保存数据时,我得到的图像没有vmin
和vmax
...
有什么建议?
第二个问题......我如何保存适合文件中的数据更改?当我im.close()
只在一个文件上使用这项工作但不循环工作时。
谢谢
编辑
好的,这里是完整的脚本
import numpy as np
import pyfits
from matplotlib import pyplot as plt
import glob
dark=glob.glob('.../ha/dark/*.fits')
flat=glob.glob('.../ha/flat/*.fits')
img=glob.glob('.../ha/*.fits')
sumd0 = pyfits.open(dark[0])
sumdd=sumd0[0].data
sumdd.astype(float)
for …
Run Code Online (Sandbox Code Playgroud)