![如何绘制 JSON 数据](https://linux22.com/image/426163/%E5%A6%82%E4%BD%95%E7%BB%98%E5%88%B6%20JSON%20%E6%95%B0%E6%8D%AE.png)
给定以下格式的 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}