首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >APLpy显示由彩色地图标准化的标记

APLpy显示由彩色地图标准化的标记
EN

Stack Overflow用户
提问于 2014-09-17 23:56:15
回答 1查看 752关注 0票数 0

我正在使用APLpy来绘制一个fits文件,并希望在特定的ra,dec值上对fits文件上的标记进行过度绘制。我想要标记的颜色用另一个参数来编码,比方说一个震级。

因此,我从文本文件(positions.dat)读取标记坐标和相应的大小:

代码语言:javascript
复制
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))                                   

我定义了一个颜色映射及其规范化:

代码语言:javascript
复制
cmap1 = mpl.cm.YlOrBr                                                           
norm1 = mpl.colors.Normalize(10,20)                                                           

为了测试代码,我在positions.dat文件中的大小都在10到20之间。

我试图按以下方式绘制这些标记:

代码语言:javascript
复制
fits1.show_markers(ra,dec, cmap=cmap1, norm=norm1, edgecolor=magnitude, facecolor='none', marker='x', s= 4, linewidths=0.8)

当我这样做的时候,我总是会发现错误:

代码语言:javascript
复制
ValueError: Color array must be two-dimensional

positions.dat文件如下所示:

代码语言:javascript
复制
  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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-05 09:47:56

问题是matplotlib的散乱不能接受不是颜色数组(即RGB值数组)的edgecolorfacecolor的值。实现您所要做的事情的正确方法是使用分散的c参数,因此在本例中:

代码语言:javascript
复制
fits1.show_markers(ra,dec, cmap=cmap1, norm=norm1,
                   c=magnitude, facecolor='none',
                   marker='x', s=4, linewidths=0.8)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25902162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档