我正在尝试使用 matplotlib 用我的模拟结果绘制 3D 热图。我已阅读此主题并尝试使用 imshow。不幸的是,当我将图形保存为 SVG 或 EPS 格式时,它会将 heatmat 转换为图片(这对于期刊来说是不可接受的)。所以,我也尝试过 hexbin - 但图像太奇怪了。我不确定它会被期刊接受。我们还有别的东西吗,或者我必须用矩形填充热垫?
例如,如果运行此代码:
import numpy as np
import numpy.random
import matplotlib.pyplot as plt
# Generate some test data
x = np.random.randn(8873)
y = np.random.randn(8873)
heatmap, xedges, yedges = np.histogram2d(x, y, bins=50)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
print extent
print heatmap
plt.clf()
surf = plt.imshow(heatmap, extent=extent)
plt.colorbar(surf, shrink=0.75, aspect=5)
plt.show()
并保存 SVG 文件,它将包含 PNG 图像:
<g clip-path="url(#p6def4f5150)">
<image height="347" width="315" x="115.127800906" xlink:href="data:image/png;base64,
我在 OpenSUSE 和 Ubuntu 操作系统下使用 matplotlib,版本 1.1.1。