Gnuplot 可以使用 Pandoc 表作为数据吗?

Can Gnuplot use Pandoc tables as data?

我在不完整的 LaTeX 文件中使用的 Pandoc table 示例

-------------------------------------------------
File        Byte        Chars           Lines
-------     ---------   -----------     ---------
009         24152000    24152000        72456000

001         24152000    24152000        72456000

000         24103840    24103840        72311520

0000        193360      193360          580080

0001        241520      241520          724560

0002        241520      241520          724560
-------------------------------------------------

Gnuplot 会接受

File        Byte        Chars           Lines
009         24152000    24152000        72456000
001         24152000    24152000        72456000
000         24103840    24103840        72311520
0000        193360      193360          580080
0001        241520      241520          724560
0002        241520      241520          724560

我想直接从我的笔记中做 gnuplots。

如何使用不完整的 Pandoc tables 作为 gnuplot 的数据源? 如果存在一些选项,那就太好了,但我还没有找到。

看看Pandoc scripting。您必须编写一个脚本来匹配 pandoc 文档的 AST 中的所有 Table 节点,并生成 Gnuplot 可以读取的格式(csv 可能更容易生成)。

或者您可以使用 pandoc -t json 来获得 AST 的 JSON 表示并像那样编写脚本。使用当前的 Pandoc 版本 (1.14),您的 sample would produce 以下 JSON:

[
    {
        "unMeta": {}
    },
    [
        {
            "t": "Table",
            "c": [
                [],
                [
                    {
                        "t": "AlignLeft",
                        "c": []
                    },
                    {
                        "t": "AlignLeft",
                        "c": []
                    },
                    {
                        "t": "AlignLeft",
                        "c": []
                    },
                    {
                        "t": "AlignLeft",
                        "c": []
                    }
                ],
                [
                    0.15,
                    0.15,
                    0.2,
                    0.1125
                ],
                [
                    [
                        {
                            "t": "Plain",
                            "c": [
                                {
                                    "t": "Str",
                                    "c": "File"
                                }
                            ]
                        }
                    ],
                    [
                        {
                            "t": "Plain",
                            "c": [
                                {
                                    "t": "Str",
                                    "c": "Byte"
                                }
                            ]
                        }
                    ],
                    [
                        {
                            "t": "Plain",
                            "c": [
                                {
                                    "t": "Str",
                                    "c": "Chars"
                                }
                            ]
                        }
                    ],
                    [
                        {
                            "t": "Plain",
                            "c": [
                                {
                                    "t": "Str",
                                    "c": "Lines"
                                }
                            ]
                        }
                    ]
                ],
                [
                    [
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "009"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "24152000"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "24152000"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "72456000"
                                    }
                                ]
                            }
                        ]
                    ],
                    [
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "001"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "24152000"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "24152000"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "72456000"
                                    }
                                ]
                            }
                        ]
                    ],
                    [
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "000"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "24103840"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "24103840"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "72311520"
                                    }
                                ]
                            }
                        ]
                    ],
                    [
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "0000"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "193360"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "193360"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "580080"
                                    }
                                ]
                            }
                        ]
                    ],
                    [
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "0001"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "241520"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "241520"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "724560"
                                    }
                                ]
                            }
                        ]
                    ],
                    [
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "0002"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "241520"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "241520"
                                    }
                                ]
                            }
                        ],
                        [
                            {
                                "t": "Plain",
                                "c": [
                                    {
                                        "t": "Str",
                                        "c": "724560"
                                    }
                                ]
                            }
                        ]
                    ]
                ]
            ]
        }
    ]
]

您可以使用 awk 通过以下命令删除空行和以至少 7 个破折号开头的行

awk '!/(^\s*$|^-{7,})/' data.dat

正则表达式匹配所有仅包含空格或至少以七个破折号开头的行。

您也可以使用

从 gnuplot 即时调用此命令
plot '< awk ''!/(^\s*$|^-{7,})/'' data.dat' skip 1

正则表达式周围的双单引号是您必须使用 gnuplot 在其他单引号内转义单引号的方式。使用单引号可以避免在正则表达式中转义反斜杠。

skip 1 忽略第一行。也许您想以其他方式使用它(例如用于密钥)。