更改“轮廓填充”平滑插值方案。以及在同一轴上填充多个轮廓的问题

更改“轮廓填充”平滑插值方案。以及在同一轴上填充多个轮廓的问题

在这篇文章中,我想解决有关 PGF 的两个“问题”。

第一个是添加多个contour filled在同一个轴上添加多个,会产生一条我想删除的分隔线(见图1)。我制作了 3 个contour filled(因此在 y~0.8 和 y~-0.75 处有两条分隔线),因为我用于绘图的数据是一个约 15000 行和 3 列的 txt 文件(x、y 坐标和确定颜色的解值)。为了避免这个著名的TeX capacity exceeded, sorry [main memory size=*****]错误,我将数据分成 3 个文件,每个文件约 5000 行,这样就制作了 3 个contour filled在同一轴上制作了 3 个文件,而不是整个数据只有一个。所以我的第一个问题是知道如何删除图中所示的分隔线1就在下面,或者我如何避免内存错误。

PGF轮廓填充

现在对于第二个“问题”,我想使用 PGF/TikZ 绘制 2D 流体流动的结果。我尝试了coutour filledpatch工具(参见PGFplots 手册,第 17.9 节:填充轮廓图和第 17.13 节:面片图)。在 python Matlotlib 中我做了两件事:

  1. 使用TriangulationLinearTriInterpolator,我能够在笛卡尔网格上插入我的解决方案,然后用来contourf绘制我的流程。
  2. 使用我原始的 FEM 网格(三角形元素)并tricontourf直接获得非常接近的结果contourf

使用Matplotlib的结果如下所示:

Matplotlib contourf

现在,我想生成一个类似的图,但使用我用 python 生成的笛卡尔网格,和contour filled。问题是我对结果不满意。

如 PGFplots 手册中所述:

“轮廓填充的结果在任何分辨率下始终具有平滑的位置插值。”

你确实可以在图上看到这一点1,其中我制作了一个contour filled(实际上是同一轴上的 3 个,如前所述),使用与 Matplotlib 中相同的数据contourf

因此,关于第二个“问题”,我的问题是,是否有任何选项可以改变所使用的平滑位置插值contour filled,以使图形1(PGF)看起来更好,实际上看起来像图3(Matplotlib)。

感谢致敬!

相关内容