Sign function in the complex plane.
\documentclass[tikz, svgnames]{standalone}
\usepackage{mathtools}
\let\Im\relax
\DeclareMathOperator{\Im}{Im}
\let\Re\relax
\DeclareMathOperator{\Re}{Re}
\def\xr{4} \def\yr{4}
\begin{document}
\begin{tikzpicture}[thick]
% Axes
\draw[->] (-\xr, 0) -- (\xr, 0) node [right] {$\Re(p_0)$};
\draw[->] (0, -\yr) -- (0, \yr) node[above] {$\Im(p_0)$};
% Squares
\draw[xshift=4, yshift=4, scale=0.95, DarkRed, fill=DarkRed!10] (0, 0) rectangle (\xr, \yr) node[black, midway] {$s(p_0) = 1$};
\draw[xshift=-4, yshift=4, scale=0.95, DarkBlue, fill=DarkBlue!10] (0, 0) rectangle (-\xr, \yr) node[black, midway] {$s(p_0) = -1$};
\draw[xshift=-4, yshift=-4, scale=0.95, DarkRed, fill=DarkRed!10] (0, 0) rectangle (-\xr, -\yr) node[black, midway] {$s(p_0) = 1$};
\draw[xshift=4, yshift=-4, scale=0.95, DarkBlue, fill=DarkBlue!10] (0, 0) rectangle (\xr, -\yr) node[black, midway] {$s(p_0) = -1$};
\end{tikzpicture}
\end{document}
#import "@preview/cetz:0.3.3": canvas, draw
#let size = 8
#let gap = 0.15 // gap between squares
#let axes-extend = 0.3
#set page(width: auto, height: auto, margin: 8pt)
#canvas({
// Draw axes
draw.line((-size / 2, 0), (size / 2 + axes-extend, 0), mark: (end: "stealth", fill: black), name: "x-axis")
draw.line((0, -size / 2), (0, size / 2 + axes-extend), mark: (end: "stealth", fill: black), name: "y-axis")
// Add axis labels
draw.content((rel: (.4, .2), to: "x-axis.end"), $"Re"(p_0)$)
draw.content((rel: (.7, 0), to: "y-axis.end"), $"Im"(p_0)$)
for (s1, s2, color) in ((1, 1, red), (-1, 1, blue), (1, -1, blue), (-1, -1, red)) {
// Draw squares with gap
draw.rect((gap * s1, gap * s2), (s1 * size / 2, s2 * size / 2), fill: color.lighten(80%), stroke: color.darken(40%))
// Add labels
draw.content((size / 4 * s1, size / 4 * s2), $s(p_0) = #calc.quo(s1, s2)$)
}
})