matplotlib:如何将 XYZ 散点图转换为像素图像?

2024-03-17

我正在寻找某种方法将散点图(X vs Y,由 Z 标准化的颜色)转换为 2D“像素”图像。 IE。如何绘制像素化图像,其中像素根据第三个变量着色?

就我而言,我有一个星系列表,每个星系都有天空坐标(X,Y)和距离(Z)。我想制作 X 与 Y 的像素化图像,像素颜色根据 Z 进行归一化(例如该像素中星系的中值 Z 值)。

我知道我可以用 hexbin 做这样的事情,但我想要方形像素,而不是六边形。 (更像是 imshow 产生的东西)。

我仍在学习Python,所以如果有一种简单/快速的方法来做到这一点(或者关于如何以复杂的方式做到这一点的明确说明!)那就太好了。

任何帮助将非常感激!


好的 - 有两种方法可以做到这一点。一种方法是为距离设置离散数量的 bin(例如 d 20pc)。这相对简单,您需要做的只是几个循环 - 这是一个包含 3 的示例:

raclose = []
ramid = []
rafar = []
decdlose = []
decmid = []
decfar = []

for ii in range(len(dist)):
  if dist[ii] < 10.:
    raclose.append(ra[ii])
    decclose.append(dec[ii])
  elif dist[ii] > 20.:
    rafar.append(ra[ii])
    decfar.append(dec[ii])
  else:
    ramid.append(ra[ii])
    decmid.append(dec[ii])

plt.clf
ax1 = scatter(raclose, decclose, marker='o', s=20, color="darkgreen", alpha=0.6)
ax2 = scatter(ramid, decmid, marker='o', s=20, color="goldenrod", alpha=0.6)
ax3 = scatter(rafar, decfar, marker='o', s=20, color="firebrick", alpha=0.6)
line1 = Line2D(range(10), range(10), marker='o', color="darkgreen")
line2 = Line2D(range(10), range(10), marker='o',color="goldenrod")
line3 = Line2D(range(10), range(10), marker='o',color="firebrick")
plt.legend((line1,line2,line3),('d < 10pc','20pc > d > 10pc', 'd > 20pc'),numpoints=1, loc=3)
show()

或者,您可以绘制等高线图,在 x 轴上规定 RA,在 y 轴上规定 Dec,并用距离填充该图。 RA 和 Dec 都是具有各自坐标的一维数组。然后用距离创建一个二维数组。确定距离的中值/平均值是多少,然后将二维数组除以该值以对其进行标准化。最后,使用等高线图(使用contourf或imshow)进行绘图,例如:

import matplotlib.pyplot as plt
from matplotlib import cm
ax = pylab.contourf(RA,Dec,dists, levels=[1, 5, 10, 15], cmap=plt.cm.spectral)
cbar=pylab.colorbar()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matplotlib:如何将 XYZ 散点图转换为像素图像? 的相关文章

随机推荐

  • 如何使 TensorFlow 在具有 2.x 功能的 GPU 上运行?

    我已在 Linux Ubuntu 16 04 上成功安装了tensorflow GPU 并进行了一些小的更改 以使其能够与新的 Ubuntu LTS 版本配合使用 然而 我认为 谁知道为什么 我的 GPU 满足计算能力大于 3 5 的最低要
  • Grails 2.4.2 - 动态引用默认数据源

    这个问题已经部分回答了here https stackoverflow com a 10537001 2315900但动态引用默认数据源仍然存在问题 我正在开发一个内部应用程序 它允许开发人员修改我们的多租户应用程序之一的配置设置 并将这些
  • 阻止 IP 地址访问 Heroku 上的 Flask 应用程序?

    我需要在我的网站上阻止一个 IP 地址 在 Heroku 上运行 Flask 应用程序 我看到我的服务器每秒有 50 个请求 这绝对不应该发生 我熟悉在 Apache 服务器上使用 htaccess 这里有类似的东西吗 Gunicorn 服
  • 在 std 命名空间中定义的好友类:有任何保证吗?

    我回答的时候就出现了这个问题这个问题 https stackoverflow com questions 15193108 c unique ptr versus friend class private destructor 151931
  • 在 R 中生成 XML 文档

    在我正在工作的项目中 我需要自动创建一个XML文档取决于用户输入 使用用户输入来修改的部分xml文件对我来说没问题 但我是新创建的xml在 R 中从头开始文档 我想知道是否XML可以使用 R 在 R 中生成如下所示的文档XML or xml
  • JTextField/JTextComponent 中的选择有限?

    考虑一个 JFormattedTextField 或者任何 JTextComponent 实际上 其中在字段的实际 文本 周围显示有一个前缀和一个后缀 例如 双 3 5 将是字符串 通过格式化 3 50 其周围将是前缀 和后缀 用于显示文本
  • 如何使用 html 属性在 MVC 视图中显示文本

    我有以下代码 Html ActionLink Hello User Identity GetUserName Manage Account routeValues null htmlAttributes new title Manage 我
  • 交叉编译到嵌入式 Linux ARM 设备时,针对较旧版本的 libstdc++ 和最新的 GCC

    我们需要为ARM嵌入式linux目标找到一个满足以下条件的交叉编译工具链 内核3 17 GLBC 2 18 编译一些第三方代码需要最新版本的GCC 这些要求促使我使用 crosstool ng 生成自定义交叉编译工具链 我选择了最小内核版本
  • 如何在eclipse中获取平台插件的日志

    我是 eclipse 插件开发的新手 我想在我的插件中自定义一些 Eclipse 功能 所以我想知道 当我在 eclipse 中进行某些操作时 后台会发生什么 例如 文件 gt 新建 gt 项目 我需要调用哪个插件 类 函数的日志 跟踪 您
  • 如何在 IntelliJ 上的 Java12 中使用 JavaFX?

    当我在 jdk12 中创建 JavaFX 文件时 它显示以下错误 未配置 JavaFX 运行时 使用内置 JavaFX 的 JDK 或将 JavaFX 库添加到类路径 我该如何解决这个问题 从 JDK11 开始 JavaFX 已被删除 ht
  • Amazon SNS 移动推送 - 如何批量订阅某个主题的终端节点?

    我正在尝试将现有的 iOS 推送通知基础设施转移到亚马逊 SNS 移动推送 我将所有令牌从本地数据库导出到 SNS 应用程序 使用 CSV 现在我想向所有 10 000 个用户发送推送通知 我认为唯一的方法是创建一个主题并将所有用户订阅该主
  • 如何向帖子收到评论的用户发送通知?

    使用我当前的代码 发表评论的用户会收到一条通知 告诉他们他们发表了评论 发布受到评论的评估的人应该收到通知 通知他们有人对此发表了评论 标准通知内容 但我哪里出错了 评论 rb class Comment lt ActiveRecord B
  • QML 创建文本元素需要很长时间

    我注意到在 QML 中创建文本元素需要很长时间 举个例子 import QtQuick 2 5 import QtQuick Window 2 2 Window visible true width 320 height 640 color
  • 如何在Python中检测小写字母?

    我需要知道是否有一个函数可以检测字符串中的小写字母 假设我开始编写这个程序 s input Type a word 是否有一个函数可以让我检测字符串 s 中的小写字母 最终可能会将这些字母分配给不同的变量 或者只是打印小写字母或小写字母的数
  • Xcode 7 Null 传递给需要非空参数的被调用者

    我更新了 Xcode 7 并给出了这个错误 Null 传递给需要非空参数的被调用者 recorder AVAudioRecorder alloc initWithURL NSURL fileURLWithPath NSString stri
  • py4j - 我将如何在 java 中调用 python 方法

    我最近发现了 py4j 并且能够从 python 调用静态 java 方法 现在我想从java调用python方法 我找不到太多文档 所以这是我能想到的最后一个可以告诉我是否可能以及如何实现的地方 您可以通过以下方式从 Java 调用 Py
  • TypeScript 错误:在 Visual Studio 中“找不到名称”

    我已经看过很多关于此问题的帖子和讨论 但我无法解决这个问题 这是我前几天的帖子 https stackoverflow com questions 36037962 how to get rid of reference path 3604
  • 当``type =“module”``或导入时功能不起作用[重复]

    这个问题在这里已经有答案了 import testBtn from functions js window onload function document getElementById questions1 style display b
  • FILESYSTEM 与 SQLITE,同时存储最多 10M 文件

    我想存储最多10M的文件 2TB的存储单元 我需要的唯一属性仅限于文件名及其内容 数据 文件最大长度为100MB 大多数小于1MB 需要删除文件的能力 并且写入和读取速度都应该是优先考虑的 而不需要低存储效率 恢复或完整性方法 我考虑过 N
  • matplotlib:如何将 XYZ 散点图转换为像素图像?

    我正在寻找某种方法将散点图 X vs Y 由 Z 标准化的颜色 转换为 2D 像素 图像 IE 如何绘制像素化图像 其中像素根据第三个变量着色 就我而言 我有一个星系列表 每个星系都有天空坐标 X Y 和距离 Z 我想制作 X 与 Y 的像