Range 修复IDL中颜色栏调色板中的范围
我正在使用IDL,我有一个数组,如:Range 修复IDL中颜色栏调色板中的范围,range,idl,colorbar,palette,Range,Idl,Colorbar,Palette,我正在使用IDL,我有一个数组,如: intensity[360,13] 包含值范围为0到60的条目。 重点是我想用0到100的比例来绘制它。 但是,如果我这样做: im = IMAGE(intensity, TITLE='Intensity', DIMENSIONS=[1400,400]) im = COLORBAR(TARGET=im) im.Save, 'intensity.png' 它固定了从强度值的最小值到最大值的任意比例。我怎么能强迫它呢?我试着说: im = COLORBAR(
intensity[360,13]
包含值范围为0到60的条目。
重点是我想用0到100的比例来绘制它。
但是,如果我这样做:
im = IMAGE(intensity, TITLE='Intensity', DIMENSIONS=[1400,400])
im = COLORBAR(TARGET=im)
im.Save, 'intensity.png'
它固定了从强度值的最小值到最大值的任意比例。我怎么能强迫它呢?我试着说:
im = COLORBAR(TARGET=im, RANGE=[0,100])
但它只设置颜色栏值,而不更改图像中的颜色。
是否可以将0和100之间的比例标准化,或者我应该以不同的方式进行操作?对不起,我不习惯IDL,我有点赶时间:)非常感谢 您是否尝试过将数组乘以某个分数来重新规范化它?在您的情况下,您可以执行以下操作:
copy_array = intensity
copy_array *= 100/60
您还可以使用类似于BYTSCL.PRO
的例程,将关键字TOP
设置为100。可以找到文档。您需要:
首先获取rgb颜色方案,并通过以下方式将其保存到rgb
:
TVLCT, rgb, /get
然后:
1:bytscl
强度数组,将最小值和最大值设置为所需颜色栏的上限和下限。
例如,如果您希望颜色栏变为10到70,则:
copy_array = bytscl(intensity, min = 10, max = 70).
2:按照正常方式进行成像,但使用RGB_表:
im = IMAGE(intensity, TITLE='Intensity', DIMENSIONS=[1400,400], RGB_table = rgb)
3:打开颜色栏(但无目标),使用最小值、最大值和rgb颜色表:
im = COLORBAR(RANGE=[10,70], RGB_table) (you may also need to supply a position for the bar too).
如果在colorbar命令中使用target
,则无法设置范围