在 pgfplots 中使用 surf 时出错

在 pgfplots 中使用 surf 时出错

我尝试使用 pgfplots 制作类似于的轮廓图pyplot.contourf但我收到了错误:

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{filecontents}    

\begin{filecontents}{testdata.dat}
  9.000000000000000000e+02 3.000000000000000000e+01 2.808099937438964844e+01
  9.000000000000000000e+02 3.500000000000000000e+01 2.836700057983398438e+01
  9.000000000000000000e+02 4.000000000000000000e+01 2.881599998474121094e+01
  1.000000000000000000e+03 3.000000000000000000e+01 2.826700019836425781e+01
  1.000000000000000000e+03 3.500000000000000000e+01 2.820400047302246094e+01
  1.000000000000000000e+03 4.000000000000000000e+01 2.856699943542480469e+01
  1.100000000000000000e+03 3.000000000000000000e+01 2.783799934387207031e+01
  1.100000000000000000e+03 3.500000000000000000e+01 2.806399917602539062e+01
  1.100000000000000000e+03 4.000000000000000000e+01 2.830699920654296875e+01
\end{filecontents}

\pgfplotstableread{testdata.dat}\datatable

\begin{document}
\begin{tikzpicture}
\begin{axis}[
  width=10cm,
  height=5cm,
  small,
  colorbar
]
  \addplot3[surf,shader=interp] table{\datatable};
\end{axis}
\end{tikzpicture}
\end{document}

当我使用时确实出现以下错误shader=interp

! LuaTeX error /usr/share/texmf-  dist/tex/generic/pgfplots/lua/pgfplots.lua:27: attempt to call global 'unpack' (a nil value)
stack traceback:
  /usr/share/texmf-dist/tex/generic/pgfplots/lua/pgfplots.lua:27: in function 'pgfplotsGetLuaBinaryStringFromCharIndices'
  [string "\directlua "]:1: in main chunk.
  \pgfplotsbinarytoluabinary ...CharIndices({#1}); }

答案1

LuaTeX 在 0.76 版本中做出了不兼容的改变。

pgfplots我在1.9中添加了一个版本开关,允许pgfplots使用 luatex 0.76 之后和 0.76 之前的两种不同且不兼容的语言。

因此,解决方案是将 pgfplots 升级到 1.9 版本或降级 lualatex。

答案2

这是从版本1.6/开始修复的一个错误/不兼容性1.6.1

1.6.1:

  • 修复不兼容 lualatex,shader=interp以及 german 包(1.6 版引入)

1.6:

  • 增加了对分层图形的支持(主要用例:多个轴和层)
  • 增加了对网格图中第二个色彩图的支持(网格/内部色彩图名称)
  • 增加了对轴内范围的支持
  • 轮廓图:增加了提供离散标签列表(网格/级别)的能力
  • 空行被解释为数据图中的中断(自 1.4 版起未记录)
  • 为“缩放模式 = 均匀缩放”添加了更多缩放选项(影响 3d 和 \addplot3 图形中的轴相等)
  • 修复了 3d 中“轴相等”和“单位矢量比”的错误实现(向后兼容 2d,但不兼容 3d - 3d 实现完全是错误的)
  • 修复 lualatex 与 shader=interp 不兼容的问题
  • 修复了 \addplot3 图形方面的错误/添加了功能
  • 修复错误:colorbar 不支持 ymode=log
  • 修复了一些小错误
  • 修复 clip=false、axis lines=none 的边界框计算

要么更新你的版本,要么编译pdflatex(我不确定最后一个选项是否有效)

相关内容