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

时间:2015-06-30 16:09:36

标签: gnuplot pandoc

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

-------------------------------------------------
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表作为gnuplot的数据源? 如果存在一些选择,但我还没有找到,那将是很好的。

2 个答案:

答案 0 :(得分:2)

您可以使用awk删除空行以及以至少7个破折号开头的行,并使用以下命令

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

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

您也可以使用

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

正则表达式周围加倍的单引号是你必须使用gnuplot转义其他单引号内的单引号的方法。并且使用单引号可以防止需要转义正则表达式中的反斜杠。

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

答案 1 :(得分:1)

看看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"
                                    }
                                ]
                            }
                        ]
                    ]
                ]
            ]
        }
    ]
]