This Week’s Interesting AI Articles

Futuristic AI Data Center

Posted from Diigo. The rest of my favorite links are here.

This Week’s Interesting AI Articles

Futuristic AI Data Center

Posted from Diigo. The rest of my favorite links are here.

A tikz macro for drawing axes and grid for LaTeX

I’m writing something that requires me to draw many plots in the Cartesian plane R2 and so I wrote this macro to simplify the process. The arguments are

  1. The optional tikzpicture scaling factor
  2. The x-coordinate of the lower left corner
  3. The y-coordinate of the lower left corner
  4. The x-coordinate of the upper right corner
  5. The y-coordinate of the upper right corner
  6. The label for the horizontal axis
  7. The label for the vertical axis

It behaves nicely if any of the coordinates are 0 but does no checking for the values or placement of the corners.

I have a separate macro \tikzGridColor that defines the grid color. At the moment it is set to a shade of blue so the graph looks like it is done on graph paper.

Scroll right to see all the code.

[sourcecode language=”tex”] \usepackage{tikz}
\usepackage{xcolor}
\usepackage{ifthen}

% remove any of the following that you don’t otherwise use

\usetikzlibrary{angles,quotes,arrows,positioning}
\usetikzlibrary{arrows.meta,calc,patterns}
\usetikzlibrary{decorations.pathreplacing,backgrounds}

\def\tikzGridColor{blue!75!white}

\newcommand{\graphGridTwoD}[7][0.5]{
% Tikz graph with x and y axes drawn, grid at integers
% #1 – optional grid step
% (#2, #3) – lower left position in integers
% (#4, #5) – upper right position in integers
% #6 – horizontal access label
% #7 – vertical access label
\draw[step=#1,\tikzGridColor,very thin] (#2-0.9,#3-0.9) grid (#4+0.9,#5+0.9);
\draw[thick,<->] (#2-0.75,0) — (#4+0.75,0) node[below] {\small #6};
\draw[thick,<->] (0,#3-0.75) — (0,#5+0.75) node[left] {\small #7};
\ifthenelse{#2<0} % if the first x coordinate < 0 then draw the labels
{\foreach \x in {#2,…,-1}
\draw[thick] (\x,.1) — (\x,-.1) node[below] {\tiny$\x$};
}{}
\ifthenelse{#4>0} % if the second x coordinate > 0 then draw the labels
{\foreach \x in {1,…,#4}
\draw[thick] (\x,.1) — (\x,-.1) node[below] {\tiny$\x$};
}{}
\ifthenelse{#3<0} % if the first y coordinate < 0 then draw the labels
{\foreach \y in {#3,…,-1}
\draw[thick] (.1,\y) — (-.1,\y) node[left] {\tiny$\y$};
}{}
\ifthenelse{#5>0} % if the second y coordinate > 0 then draw the labels
{\foreach \y in {1,…,#5}
\draw[thick] (.1,\y) — (-.1,\y) node[left] {\tiny$\y$};
}{}
\node[below left] at (0,0) {\tiny$0$};
}
[/sourcecode]

Verified by MonsterInsights