Figure helper
Skill SeidSmatti/misc-CC-Plugins/plugins/academic-latex/skills/figure-helper
Personal multi usage Claude Code plugins/skills marketplace
npx -y skills add SeidSmatti/misc-CC-Plugins --skill figure-helperAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generates and edits TikZ / PGFPlots figures from a description or data. Produces correct preamble (\\usepackage{tikz}, \\usepackage{pgfplots}, \\pgfplotsset{compat=newest}), uses canonical TikZ libraries, and supplies the right styling defaults (axis labels, gridlines, legend, mark choice). Use when the user asks for a TikZ figure, a labeled plot, a state diagram, a flowchart, a PGFPlots chart from data, or wants to convert a description into a figure. Delegates to /academic-latex:docs-lookup for non-trivial TikZ/PGFPlots options.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.8 KB, as published. Nobody here has run it
figure-helper — TikZ and PGFPlots authoring
Standard TikZ/PGFPlots preamble
\usepackage{tikz}
\usetikzlibrary{arrows.meta, positioning, calc, shapes.geometric, decorations.pathreplacing, fit, backgrounds}
\usepackage{pgfplots}
\pgfplotsset{compat=newest} % or compat=1.18 to pin
\usepgfplotslibrary{groupplots, fillbetween, statistics, dateplot}
% For caching long compiles:
% \usetikzlibrary{external}
% \tikzexternalize[prefix=tikz-cache/]
\pgfplotsset{compat=newest} is required — without it, every minor pgfplots update can shift output. Pin to a specific version (compat=1.18) when reproducibility matters.
Sources: https://ctan.org/pkg/pgfplots, https://tikz.dev/pgfplots.
Flowchart / pipeline diagram
\begin{tikzpicture}[
node distance=12mm,
block/.style={rectangle, draw, rounded corners, minimum width=22mm, minimum height=8mm, align=center},
arrow/.style={-{Latex[length=2mm]}, thick}
]
\node[block] (in) {Input};
\node[block, right=of in] (proc) {Process};
\node[block, right=of proc] (out) {Output};
\draw[arrow] (in) -- (proc);
\draw[arrow] (proc) -- (out);
\end{tikzpicture}
For more nodes, swap right=of for below=of, above=of, etc. (from positioning lib).
Labeled line plot (PGFPlots)
\begin{tikzpicture}
\begin{axis}[
width=0.8\linewidth, height=6cm,
xlabel={Epoch}, ylabel={Loss},
xmin=1, xmax=10,
grid=major, grid style={dashed,gray!30},
legend pos=north east,
legend cell align=left,
]
\addplot[thick, blue, mark=*] table {
1 0.95
2 0.62
3 0.41
4 0.28
5 0.21
6 0.18
7 0.16
8 0.15
9 0.14
10 0.13
};
\addlegendentry{train}
\addplot[thick, red, mark=square*] table {
1 1.10
2 0.78
3 0.55
4 0.40
5 0.30
6 0.26
7 0.24
8 0.23
9 0.22
10 0.22
};
\addlegendentry{val}
\end{axis}
\end{tikzpicture}
Mark options: * (filled circle), o (open circle), square*, triangle*, diamond*, +, x, star, none.
Bar chart (PGFPlots)
\begin{tikzpicture}
\begin{axis}[
ybar, ymin=0,
width=0.8\linewidth, height=6cm,
xlabel={Method}, ylabel={Accuracy (\%)},
symbolic x coords={Baseline, Method A, Method B, Method C},
xtick=data,
nodes near coords,
nodes near coords align={vertical},
enlarge x limits=0.15,
]
\addplot coordinates {
(Baseline, 71.2) (Method A, 78.9) (Method B, 84.1) (Method C, 86.4)
};
\end{axis}
\end{tikzpicture}
For grouped bars: \addplot more series; pgfplots handles offset.
Plot from CSV file
% Data in data.csv:
% epoch,train,val
% 1,0.95,1.10
% ...
\begin{tikzpicture}
\begin{axis}[xlabel={Epoch}, ylabel={Loss}, legend pos=north east]
\addplot table[x=epoch, y=train, col sep=comma] {data.csv}; \addlegendentry{train}
\addplot table[x=epoch, y=val, col sep=comma] {data.csv}; \addlegendentry{val}
\end{axis}
\end{tikzpicture}
State machine diagram
\begin{tikzpicture}[
node distance=18mm, on grid, auto,
state/.style={circle, draw, minimum size=9mm},
every edge/.append style={-{Latex[length=2mm]}}
]
\node[state, initial] (q0) {$q_0$};
\node[state, right=of q0] (q1) {$q_1$};
\node[state, accepting, right=of q1] (q2) {$q_2$};
\path[->]
(q0) edge node {a} (q1)
(q1) edge node {b} (q2)
(q1) edge[loop above] node {c} (q1);
\end{tikzpicture}
Required library: \usetikzlibrary{automata}.
Function plot (analytic)
\begin{tikzpicture}
\begin{axis}[
domain=-3:3, samples=200,
xlabel={$x$}, ylabel={$f(x)$},
axis lines=middle, grid=major,
]
\addplot[thick, blue] {sin(deg(x))}; \addlegendentry{$\sin x$}
\addplot[thick, red] {cos(deg(x))}; \addlegendentry{$\cos x$}
\end{axis}
\end{tikzpicture}
Note PGFPlots uses degrees by default — wrap radians input as sin(deg(x)).
Externalize for fast re-compilation
\usetikzlibrary{external}
\tikzexternalize[prefix=tikz-cache/]
Each TikZ figure becomes a separate compile, cached as a PDF. First build is slow; subsequent builds skip unchanged figures. Useful when a thesis has 30+ TikZ figures.
Standalone figure document (compile a figure to its own PDF)
\documentclass[tikz, border=4pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[draw] {Just this figure};
\end{tikzpicture}
\end{document}
Useful when iterating on a single figure without recompiling the whole paper.
Common pitfalls
- Missing
\pgfplotsset{compat=newest}→ silent layout drift across versions. - Mixing
pgfplotswithsiunitx— load siunitx first. - Compile time on large datasets — externalize, or pre-render to PDF and
\includegraphics. - Math in axis labels needs
$...$:xlabel={$\theta$ (rad)}, notxlabel={\theta (rad)}.
When uncertain
For non-trivial TikZ libraries or pgfplots options, delegate to /academic-latex:docs-lookup. The pgfplots manual is dense (https://pgfplots.sourceforge.net/pgfplots.pdf) and has the canonical answer.
Last verified
2026-05-09 — pgfplots manual; TikZ documentation at https://tikz.dev/.