- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在收集大量数据,这些数据将使用 h5py 保存到单独的 H5 文件中。我想将这些图像拼接成一个 pcolormesh 图,以保存为单个图像。
我一直在研究的一个简单示例生成 2000x2000 个随机数据点的数组,并使用 h5py 将它们保存在 H5 文件中。然后我尝试导入这些文件中的数据并尝试在 matplotlib 中将其绘制为 pcolormesh,但我总是遇到 memoryError(这是预期的)。
import numpy
import h5py
arr = numpy.random.random((2000,2000))
with h5py.File("TEST_HDF5_SAVE_FILES\\Plot_0.h5", "w") as f:
dset = f.create_dataset("Plot_0", data = arr)
for i in range(1,100):
arr = numpy.random.random((2000,2000))
with h5py.File("TEST_HDF5_SAVE_FILES\\Plot_" + str(i) + ".h5", "w") as f:
dset = f.create_dataset("Plot_" + str(i), data = arr)
此脚本生成我的文件。我选择 100 作为任意数字只是为了有足够大的文件集可供提取。
然后我使用以下脚本导入它们:
y = numpy.arange(0, 2000, 1)
for display_plot_num in range(0, 5):
print display_plot_num
x = numpy.arange(display_plot_num*2000, display_plot_num*2000 + 2000, 1)
with h5py.File("TEST_HDF5_SAVE_FILES\\Plot_" + str(display_plot_num) + ".h5", "r+") as f:
data = f["Plot_" + str(display_plot_num)]
plt.pcolormesh(x, y, data)
plt.show()
for 循环中的范围值最多可以更改为 100,但我可以在没有内存错误的情况下选择的最大值是 5(即,可以在 matplotlib 中的 pcolormesh 图上修补 5 个图)并且它非常笨重并且慢的。我需要能够将许多图像拼接在一起。
我应该使用任何其他技术来绘制这些数据吗?或者,如果我无需通过 matplotlib 或类似程序(如 scipy)就可以将来自多个 H5 文件的数据转换为图像,那就太好了。
总而言之,我的问题是:
感谢任何帮助。此外,我很乐意回答有关我的问题的任何进一步问题。
编辑(5.6.2013):
我觉得类似的问题是如何在 Python 中处理(导入、操作、编辑等)非常高分辨率的图像。这基本上就是我想要做的;从一组较小的图像生成一个非常高分辨率的图像。
最佳答案
减少 matplotlib 中图像膨胀的一种方法(尤其是在保存为 SVG 时)是使用 rasterized=True
kwarg。这实质上将“压平”您的 pcolormesh,从而使保存速度更快、使用的资源更少等。
关于python - 使用 Python 从保存在 H5 文件中的非常大的数据集生成 pcolormesh 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16921997/
我是一名优秀的程序员,十分优秀!