1

我想知道如何在 python 中制作密度图。我正在使用以下代码plt.hist2d(x[:,1],x[:,2],weights=log(y),bins=100) ,其中x值是一个数组,并且y是各个像素中有多少能量(我正在处理星系的图像,但不适合图像)。但是这段代码有一个问题,如果我选择一个小的值bins,例如 240,我可以很好地看到星系的结构,但是扭曲了。如果我选择一个 bin 的值为 3000,则图像会丢失大量信息,y并且不会绘制许多值。我将在下面展示两个示例。

我试过用plt.imshow但是不行,出现问题TypeError: Invalid dimensions for image data。我正在处理的数据来自 hdf5 文件。我希望有可能以高分辨率绘制图像,以便更好地看到银河系的结构。这是可能的?

这是图像:

bins_240.png bins_900.png

4

1 回答 1

0

使用您描述的系统,您应该根据像素的大小设置 bin 大小。这样,您将获得最大的分辨率。

但是,我怀疑您可以表示的最大级别数是 256。

如果您想要更高的分辨率,您可能需要自己计算图像。根据这篇文章,您可以保存高达 32 位精度的灰度图像。那可能是夸大其词了。16位还是不错的。这种计算并不难,PIL(Python Imaging Library)有工具来完成格式化工作。

当然,很大程度上取决于您可用数据的分辨率!

于 2015-05-30T05:36:42.030 回答