如何绘制 JSON 数据

如何绘制 JSON 数据

给定以下格式的 json 文件:

"name":"list_of_xy_values",
"data":[[1,2],[2,4],[3,6],[4,3],[5,0]]

我想将其导入data到我的文档中,然后使用 tikz/pgfplots 进行绘图,但我对 LaTeX 不太熟悉。

有没有可以直接导入json的库?

如果无法直接导入,我可以使用 python 轻松将所需数据转换为 csv 文件。在这种情况下,我想知道是否以及如何从 latex 中触发 python 脚本,以便在编译 LaTeX 脚本时自动转换数据,而无需我每次手动调用脚本。

答案1

LuaLaTeX 有一个集成的 JSON 解析器。使用一些包装器代码,\pgfplotstableread它可以用来将 JSON 文件直接读入 pgfplots 表。

\begin{filecontents*}{test.json}
{
    "name":"list_of_xy_values",
    "data":[[1,2],[2,4],[3,6],[4,3],[5,0]]
}
\end{filecontents*}

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}

\expandafter\pgfplotstableread\directlua{
    local json = utilities.json.load("test.json")
    tex.sprint("{\string\r")
    tex.sprint("x y\string\r")
    for n, row in ipairs(json.data) do
        tex.sprint(row[1] .. " " .. row[2] .. "\string\r")
    end
    tex.sprint("}")
}\loadedtable

\begin{tikzpicture}
  \begin{axis}
    \addplot table {\loadedtable};
  \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容