[
    ["== Figure ==", "", []],
    ["figsize", "Figure size (inch).\nExample:", [[6.0, 4.0]]],
    [
        "subplots_adjust",
        "Margins (relative).\nExamples: \"0.15\" (bottom only), \"[0.125, 0.1, 0.9, 0.9]\" left,b,r,top, \"[1,1,5,3.5,\"abs\"]\"",
        [0.15, [0.125, 0.1, 0.9, 0.9], [1, 1, 5, 3.5, "abs"]]
    ],
    ["dpi", "Resolution dots-per-inch.\nExample:", [300]],
    ["fontsize", "Font size of titles, annotations, etc.\nExample:", [12]],
    [
        "title",
        "Graph title, based on ax.set_title().\nExamples:",
        ["My data", ["A dataset", {"color": "r"}]]
    ],
    ["== Axes ==", "", []],
    [
        "xlim",
        "Limits of x axis, based on ax.set_xlim().\nExamples:",
        [[2, 9], ["", 4]]
    ],
    [
        "ylim",
        "Limits of y axis, based on ax.set_ylim().\nExamples:",
        [[0, 100], [0, ""]]
    ],
    [
        "xlabel",
        "Label of x axis, based on ax.set_xlabel().\nExamples:",
        ["Axis x [unit]", ["My label", {"size": 6, "color": "r"}]]
    ],
    [
        "ylabel",
        "Label of y axis, based on ax.set_ylabel().\nExample:",
        ["Axis y [unit]", ["My label", {"size": 6, "color": "r"}]]
    ],
    [
        "xticksstep",
        "Value difference between ticks on x axis, or ticks positions.\nExamples:",
        [0.01, [0, 1, 2]]
    ],
    [
        "yticksstep",
        "Value difference between ticks on y axis, or ticks positions.\nExample:",
        [0.01, [0, 1, 2]]
    ],
    [
        "xtickslabels",
        "Customized ticks. First is a list of values, then a list of labels, then possibly options.\nExamples:",
        [
            [[0, 1], ["some", "value"]],
            [null, null, {"rotation": 45, "size": 6, "color": "r"}]
        ]
    ],
    [
        "ytickslabels",
        "Customized ticks. First is a list of values, then a list of labels, then possibly options.\nExamples:",
        [
            [[0, 1], ["some", "value"]],
            [null, null, {"rotation": 45, "size": 6, "color": "r"}]
        ]
    ],
    [
        "xlabel_coords",
        "Position of xlabel, based on ax.xaxis.set_label_coords().\nExamples:",
        ["-0.1", [0.5, -0.15]]
    ],
    [
        "ylabel_coords",
        "Position of ylabel, based on ax.yaxis.set_label_coords().\nExamples:",
        [-0.1, [-0.1, 0.5]]
    ],
    ["== Legends ==", "", []],
    [
        "legendproperties",
        "Position, or keywords to ax.legend().",
        ["best", "sw", {"bbox_to_anchor": [0.2, 0.8], "ncol": 2, "fontsize": 8}]
    ],
    [
        "legendtitle",
        "Legend title. Examples:",
        ["Some title", ["Some title", {"size": 25}]]
    ],
    ["== Annotations ==", "", []],
    [
        "axhline",
        "Horizontal line(s), based on ax.axhline().",
        [
            "0",
            [1, 1.5, 2, {"color": "r"}],
            [[3, {"xmin": 0.4}], [4, {"xmax": 0.6, "linewidth": 2}]],
            [0, {"linewidth": 0.5}]
        ]
    ],
    [
        "axvline",
        "Vertical line(s), based on ax.axvline().",
        [
            "0",
            [1, 1.5, 2, {"color": "r"}],
            [[3, {"ymin": 0.4}], [4, {"ymax": 0.6, "linewidth": 2}]],
            [0, {"linewidth": 0.5}]
        ]
    ],
    [
        "text",
        "Annotations. Use GUI window if possible.",
        ["Some text", ["Here", "There"]]
    ],
    [
        "textxy",
        "Annotations coordinates. Use GUI window if possible.",
        [[0.05, 0.95], [[0.2, 0.3], [0.8, 0.9]]]
    ],
    [
        "textargs",
        "Annotations data. Use GUI window if possible.",
        [
            {"fontsize": 15},
            [
                {
                    "horizontalalignment": "right",
                    "xytext": [0.4, 0.65],
                    "arrowprops": {"shrink": 0.05},
                    "xy": [0.46, 0.32]
                },
                {}
            ]
        ]
    ],
    ["== Secondary axes ==", "", []],
    [
        "twiny_xlabel",
        "Secondary x axis label.\nExamples:",
        ["Other axis x [unit]", ["My label", {"size": 6, "color": "r"}]]
    ],
    [
        "twinx_ylabel",
        "Secondary y axis label.\nExamples:",
        ["Other axis x [unit]", ["My label", {"size": 6, "color": "r"}]]
    ],
    ["twiny_xlim", "Secondary x axis limits.\nExamples:", [[2, 9], ["", 4]]],
    ["twinx_ylim", "Secondary y axis limits.\nExamples:", [[0, 100], [0, ""]]],
    ["== Misc ==", "", []],
    [
        "alter",
        "Data transform keyword, specific to the type of manipulated data.\nExamples:",
        ["linear", ["y", "x"], ["nmeV", "tauc"]]
    ],
    [
        "typeplot",
        "General graph plotting instruction, based on ax.set_xscale() and ax.set_yscale().\nExamples:",
        ["plot", "semilogx"]
    ],
    [
        "arbitraryfunctions",
        "A list of instructions. Each instruction is a list as\n[method of ax, list of arguments, dict of keyword arguments]",
        [
            [
                ["xaxis.set_ticks", [[1.5, 5.5]], {"minor": true}],
                ["set_xticklabels", [["a", "b"]], {"minor": true}]
            ],
            [["set_axis_off", [], {}]],
            [["grid", [true], {"axis": "both"}]],
            [["yaxis.set_major_formatter", ["StrMethodFormatter({x:.2f})"], {}]],
            [["xaxis.set_minor_locator", ["MultipleLocator(0.5)"], {}]],
			[
				["spines.left.set_color", ["red"], {}],
				["spines.bottom.set_color", ["red"], {}],
				["spines.right.set_color", ["red"], {}],
				["spines.top.set_color", ["red"], {}],
				["tick_params", [], {"axis": "both", "which": "both", "colors": "red"}],
				["xaxis.label.set_color", ["red"], {}],
				["yaxis.label.set_color", ["red"], {}]
			]
        ]
    ]
]
