
Мне было интересно, есть ли более лаконичный способ выразить следующий сюжет (я использую простой формат):
\input tikz
\tikzpicture
\draw[help lines, ystep=.5] (-.2,-10) grid (12.5,15);
\draw[->] (0, -10) to (0, 15) node[above] {$y$};
\draw[->] (0, 0) to (12.5, 0) node[right] {$x$};
\draw (1,-.5) node {$1$};
\draw (2,-.5) node {$2$};
\draw (3,-.5) node {$3$};
\draw (4,-.5) node {$4$};
\draw (5,-.5) node {$5$};
\draw (6,-.5) node {$6$};
\draw (7,-.5) node {$7$};
\draw (8,-.5) node {$8$};
\draw (9,-.5) node {$9$};
\draw (10,-.5) node {$10$};
\draw (11,-.5) node {$11$};
\draw (12,-.5) node {$12$};
\draw (-.5,-10) node {$-20$};
\draw (-.5,-9) node {$-18$};
\draw (-.5,-8) node {$-16$};
\draw (-.5,-7) node {$-14$};
\draw (-.5,-6) node {$-12$};
\draw (-.5,-5) node {$-10$};
\draw (-.5,-4) node {$-8$};
\draw (-.5,-3) node {$-6$};
\draw (-.5,-2) node {$-4$};
\draw (-.5,-1) node {$-2$};
\draw (-.5,0) node {$0$};
\draw (-.5,1) node {$2$};
\draw (-.5,2) node {$4$};
\draw (-.5,3) node {$6$};
\draw (-.5,4) node {$8$};
\draw (-.5,5) node {$10$};
\draw (0,-10) circle (2pt);
\draw (1,-9) circle (2pt);
\draw (2,-8) circle (2pt);
\draw (3,-7) circle (2pt);
\draw (4,-6) circle (2pt);
\draw (5,-5) circle (2pt);
\draw (6,-4) circle (2pt);
\draw (7,-3) circle (2pt);
\draw (8,-2) circle (2pt);
\draw (9,-1) circle (2pt);
\draw (10,0) circle (2pt);
\draw (11,1) circle (2pt);
\draw (12,2) circle (2pt);
\endtikzpicture
\bye
Он получается таким большим, что не помещается на странице.
решение1
Вот версия LaTeX.
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[help lines, ystep=.5] (-.2,-10) grid (12.5,15);
\draw[->] (0, -10) to (0, 15) node[above] {$y$};
\draw[->] (0, 0) to (12.5, 0) node[right] {$x$};
\foreach \X in {0,...,12}
{\ifnum\X>0
\node at (\X,-0.5) {$\X$};
\fi
\draw (\X,-10+\X) circle (2pt); }
\foreach \Y in {-20,-18,...,10}
{\node at (-0.5,\Y/2) {$\Y$};}
\end{tikzpicture}
\end{document}
Удивительно, но следующее действительно происходитpdftex
\input tikz
\tikzpicture
\draw[help lines, ystep=.5] (-.2,-10) grid (12.5,15);
\draw[->] (0, -10) to (0, 15) node[above] {$y$};
\draw[->] (0, 0) to (12.5, 0) node[right] {$x$};
\foreach \X in {0,...,12}
{\ifnum\X>0
\node at (\X,-0.5) {$\X$};
\fi
\draw (\X,-10+\X) circle (2pt); }
\foreach \Y in {-20,-18,...,10}
{\node at (-0.5,\Y/2) {$\Y$};}
\endtikzpicture
\bye
решение2
Итак, проведя ночь за чтением руководства, пребывая в цикле проб и ошибок, после множества торжественных заявлений о призыве сверхъестественной силы, чтобы причинить вред или наказать что-либо, о чем теперь сожалел, я, наконец, победоносно, сформировал следующее:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{datavisualization, datavisualization.formats.functions}
\begin{document}
\begin{tikzpicture}
\datavisualization[
school book axes
, x axis={unit length=5mm}
, y axis={
unit length=5mm
, ticks={step=2}
, grid
, scaling = min at 0cm and max at 5cm
}
, visualize as line
]
data[format=function] {
var x : interval [0:12];
func y = (\value x - 10) * 2;
};
\end{tikzpicture}
\end{document}
Бум! Пау! Шазам! Священный формат данных функции, Бэтмен! Это чертовски мило, надо сказать.
Единственная проблема, с которой я столкнулся, заключается в том, что он не работает с простым форматом, заставляя пользователя опускаться на более низкий уровень просветления.