【问题标题】:Plotting 3D distribution in python在 python 中绘制 3D 分布
【发布时间】:2021-04-25 19:00:37
【问题描述】:

我想在 3D 中绘制我的data,如下图(实心圆圈根据偏角以灰度显示;较深的颜色表示偏角较低。RA-Dec 平面中的点是投影天体)

我是这样绘制的,但我无法得到上面给出的数字

import numpy as np, math
import matplotlib.pyplot as plt
from astropy.table import Table
from mpl_toolkits.mplot3d import Axes3D

data=Table.read('test_data.fits')
min_red=min(data['redshift'])
fig = plt.figure(figsize=(16,14))
ax = Axes3D(fig)

ax = fig.gca(projection='3d')
ax.view_init(10,30)

ax.plot(data['ra'], data['dec'], data['redshift'],'ko',markersize=5,linewidth=2)

m=ax.plot(data['ra'], data['dec'], 'ro', markersize=1, color='r', zdir='z', zs=min_red)

ax.set_xlabel('ra')
ax.set_ylabel('dec')
ax.set_zlabel('redshift')
plt.show()

但我得到了这个数字(Ra和Dec中的点是天体平面上的投影)

如何像第一个图一样绘制。请帮忙

【问题讨论】:

  • @Mr.T 这与您评论的问题不同。我想改变 3D 分布的形状(我的第一个图)。但我不能那样作图。我想以与第一个图相同的方式绘制
  • 什么是“相同的方式”,“所见的形状”是什么意思?图像在许多方面有所不同。是否要更改viewing angle
  • @Mr.T 是的,我想像第一个图一样改变视角。实际上,X、Y 和 Z 是相同的(第一个图使用了另一种变换,但它与 X 是 RA、y 是 DEC 和 z 是 Redshift 相同[第一个图将红移转换为距离,所以它是相似的]。我会喜欢以相同的视角绘制我的图,没有网格
  • 这告诉您如何使特定窗格不可见:stackoverflow.com/q/44001613/8881141 有了这些信息,您应该能够重新创建所需的输出。

标签: python matplotlib plot 3d scatter-plot


【解决方案1】:

我认为最简单的方法是使用 Axes3D.scatter,如下所示:

import numpy as np, math
import matplotlib.pyplot as plt
from astropy.table import Table
from mpl_toolkits.mplot3d import Axes3D

data=Table.read('test_data.fits')
min_red=min(data['redshift'])
fig = plt.figure(figsize=(16,14))
ax = Axes3D(fig)

ax = fig.gca(projection='3d')
ax.view_init(10,30)

y=list(data['dec'])
ax.scatter(data['ra'], data['dec'], data['redshift'],'ko', c=y, cmap = 'Greys')

m=ax.plot(data['ra'], data['dec'], 'ro', markersize=1, color='r', zdir='z', zs=min_red)

ax.set_xlabel('ra')
ax.set_ylabel('dec')
ax.set_zlabel('redshift')
plt.show()

Axes3D.scatter 文档中所述:

一种颜色。 c 可以是单个颜色格式字符串,也可以是长度为 N 的颜色规范序列,或者是要使用 cmap 和通过 kwargs 指定的规范映射到颜色的 N 数字序列(见下文)。请注意,c 不应是单个数字 RGB 或 RGBA 序列,因为它与要进行颜色映射的值数组无法区分。 c 可以是一个二维数组,其中的行是 RGB 或 RGBA,但是,包括为所有点指定相同颜色的单行的情况。

My result with the code above

【讨论】:

  • 我也是这样画的。我想绘制相同的视角。如您所见,我们可以在我的情节中看到角落(如墙角),但在我的问题的第一个图中我们看不到类似的东西。
  • 好的,我以为问题是关于点颜色的,你可以在那里找到答案:stackoverflow.com/questions/44001613/…
猜你喜欢
  • 1970-01-01
  • 2021-07-21
  • 1970-01-01
  • 2015-08-06
  • 2022-11-10
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 2014-10-23
相关资源
最近更新 更多