【问题标题】:C++/GNUPlot heatmap with sparse data?具有稀疏数据的 C++/GNUPlot 热图?
【发布时间】:2015-11-15 14:34:54
【问题描述】:

我只是想用 gnuplot 在 C++ 中模仿以下 python 代码:

H, x, y = np.histogram2d(xs, ys, bins=200)
X, Y = np.meshgrid(x[:-1], y[:-1], indexing='ij')
plt.pcolormesh(X, Y, H, cmap = "hot")
plt.colorbar()
plt.autoscale()
plt.show()

我的 c++ 代码已经具备生成 x,y 值和使用 gnuplot 绘图的功能。我以前在 c++/gnuplot 中做过热图,但在这些情况下,我在所需绘图范围内的每个点都有 x、y、z 数据。如果您只有稀疏数据,那么执行此操作的有效方法是什么?

【问题讨论】:

  • 您的代码不能按原样使用:它缺少 numpymatplotlib 导入以及 xsys 的定义。对于使用 gnuplot 进行稀疏数据插值,您可能需要查看 set dgrid3d

标签: c++ plot gnuplot heatmap density-plot


【解决方案1】:

gnuplot 插入网格数据

set dgrid3d 200,200
# set pm3d + your options for the heat map
splot dataf

dgrid3d 有许多不同的插值例程可用,请查看help dgrid3d。我认为您希望“box”选项简单地对您的数据进行分箱。

【讨论】:

  • 在我的输入文件中以“xyz”形式给出 n 行稀疏数据我尝试过做“set dgrid3d n,n box”、“set pm3d map”、“set output” .eps", "splot "in.txt"" 并且总是以空图结束。Here 是我的数据示例。
  • 我想你想要一个像 n^(1/3) 行和列这样的网格。为什么是每股收益?您是否忘记了“设置术语后记 eps”?使用您的默认交互式终端进行测试!没有 pm3d 可以吗?测试时不要追求最大的复杂性!将您的问题归结为消失,以确定确切的问题!
猜你喜欢
  • 2017-07-01
  • 2019-01-03
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
  • 1970-01-01
  • 2020-02-25
  • 2015-06-11
  • 1970-01-01
相关资源
最近更新 更多