好吧,我认为这可能很简单,但我已经广泛搜索,找不到任何东西.我想要做的是指定使用matplotlib生成的轮廓线的精确RGB颜色值.我知道,如果我这样做:
plt.contour(X,Y,Z,[0.1,0.2,0.3],colors='k')
Run Code Online (Sandbox Code Playgroud)
然后我会得到三个等高于黑色的轮廓等级,或者如果我用'w'代替'k'那么轮廓都是白色的.那很好,但我需要做的是这样的事情:
plt.contour(X,Y,Z,[0.1,0.2,0.3],colors=(1.0,0.25,0.75)
Run Code Online (Sandbox Code Playgroud)
颜色未从某些内置预设中选择但具有由我精确定义的RGB(或RGBA)值.
有任何想法吗 ?
我对 FITS 文件执行了一个非常简单的操作(数据是 numpy 数组格式),但我无法将其保存为新文件或覆盖现有文件。
我正在重写一些使用 numpy pyfits 模块处理天文 FITS 文件的旧代码 - 我想更新它以使用 astropy.io fits 模块。具体来说,我使用的一些数据是 3D 的,有些是 4D 的。4D 的东西只是一个约定 - 第 4 轴不包含有用的信息(可以在此处找到数据示例:http : //www.mpia.de/THINGS/Data_files/NGC_628_NA_CUBE_THINGS.FITS)。所以我更喜欢删除额外的轴,然后我的其余代码可以在没有任何特殊要求的情况下继续进行。
这是我使用的基于 pyfits 的旧代码,效果很好:
import numpy
import pyfits
filename = 'NGC628.fits'
outfile = 'NGC628_reshaped.fits'
# Get the shape of the file
fitsfile=pyfits.open(filename)
image = fitsfile[0].data
header =fitsfile[0].header
z = image.shape[1] # No. channels
y = image.shape[2] # No. x pixels
x = image.shape[3] # No. y pixels
newimage = numpy.reshape(image,[z,y,x])
pyfits.core.writeto(outfile,newimage,header, clobber=True) …Run Code Online (Sandbox Code Playgroud)