我用APLpy绘制一个fits文件,并想在fits文件上以特定的ra,dec值过度绘制标记。我希望标记的颜色用另一个参数来编码,比如一个幅度。在
所以我要做的是从文本文件中读取标记坐标和相应的量值(位置.dat)公司名称:
ra = np.genfromtxt('positions.dat', dtype=float, comments='%', delimiter=';', missing_values='_', skip_header=1, usecols = (0))
dec = np.genfromtxt('positions.dat', dtype=float, comments='%', delimiter=';', missing_values='_', skip_header=1, usecols = (1))
magnitude = np.genfromtxt('positions.dat', dtype=float, comments='%', delimiter=';', missing_values='_', skip_header=1, usecols = (2))
我定义了一个颜色映射及其规范化:
^{pr2}$我在位置.dat文件都在10到20之间来测试代码。在
我试着按如下方式绘制标记:
fits1.show_markers(ra,dec, cmap=cmap1, norm=norm1, edgecolor=magnitude, facecolor='none', marker='x', s= 4, linewidths=0.8)
当我这样做时,我总是得到错误:
ValueError: Color array must be two-dimensional
在位置.dat文件如下所示:
ra ; dec ; magnitude
330.45 ; -31.958333 ; 10.0
330.46 ; -31.958333 ; 11.0
330.47 ; -31.958333 ; 12.0
330.48 ; -31.958333 ; 13.0
330.49 ; -31.958333 ; 14.0
330.50 ; -31.958333 ; 15.0
330.51 ; -31.958333 ; 16.0
330.52 ; -31.958333 ; 17.0
330.53 ; -31.958333 ; 18.0
330.54 ; -31.958333 ; 19.0
330.55 ; -31.958333 ; 20.0
问题是matplotlib的散点不能为非颜色数组(即RGB值数组)的
edgecolor
和facecolor
取值。正确的方法是使用scatter的c
参数,因此在本例中:相关问题 更多 >
编程相关推荐