Tikzguide Cheatsheet
Tikzguide Cheatsheet
Fall 2018. All drawings at scale 1. All code is included with TikZ package, no other packages required.
Line Thickness
Arrows
\ draw [ - >] (0 ,0) - -(2 ,0);
\ draw [ thick ] (0 ,0) ellipse (1 and 0.5); (center) and (width height)
\ draw [ - > , thick ] (0 ,0) to [ bend right =30] (2 ,0); Simple curve between nodes,
right or left, specify angle
\ draw (0 ,0).. controls (0.5 ,1) and (1.5 , -1)..(2 ,0); Bezier
Line Caps
\ draw [ line width =3 pt , line cap = butt ] (0 ,0) - -(2 ,0);
Line Joins
\ draw [ line width =6 pt , line join = miter ] (0 ,0) - -(2 ,0) - -(2 ,1) - - cycle ;
\ draw [ line width =6 pt , line join = bevel ] (0 ,0) - -(2 ,0) - -(2 ,1) - - cycle ;
\ draw [ line width =6 pt , line join = round ] (0 ,0) - -(2 ,0) - -(2 ,1) - - cycle ;
Colors, Shading, Opacity
Predefined colors available: red, green, blue, cyan, magenta, yellow, black, gray, darkgray, lightgray, brown, lime,
olive, orange, pink, purple, teal, violet, white
\ shade [ left color = blue , right color = green ] (0 ,0) rectangle (2 ,0.5);
\ shade [ draw = black , top color = blue , bottom color = yellow ] (0 ,0) rectangle (2 ,0.5);
\ shade [ inner color = blue , outer color = red ] (0 ,0) rectangle (2 ,0.5);
\ node ( A ) at (0 ,0) {}; Position node called A at the point (0,0), no text
\ node ( B ) at (2 ,0) {}; Position node called B at the point (2,0), no text
\ foreach \ i in {0 ,1 ,2 ,3} {
\ draw (\ i , 0) circle (0.2);
}
3
4 2
% label nodes for reference later ; count starts at 1
\ foreach \ angle [ count =\ n ] in {0 ,45 ,... ,315} { 5 1
\ node [ circle , draw = red , inner sep =2 pt ] at (\ angle :1.2) {\ n };
}
6 8
7
9.0
% use pgfmath to calculate values for colors , text , etc
16.0 4.0
\ foreach \ angle [ count =\ n ] in {0 ,45 ,... ,315} {
\ pgfmathsetmacro \ shade {\ n *12}
\ pgfmathsetmacro \ lab {\ n *\ n } 25.0 1.0
\ node [ circle , white , draw = black , fill = blue !\ shade ! orange ,
inner sep =2 pt ] (\ n ) at (\ angle :1.5) {\ lab };
\ draw (0 ,0) -- (\ n ); 36.0 64.0
} 49.0
6
% TikZ bar chart , loop over values to be charted
\ foreach \ b [ count =\ n ] in {3 ,6 , -1 ,2 ,4} { 4
\ draw [ thick , black , fill = blue !20! white ] 3
(\ n -1 ,0) rectangle (\ n ,0.4*\ b ); 2
\ node [ above ] at (\ n -0.5 ,0.4*\ b ){\ b };
}
-1
% if else :
\ foreach \ r in {0 ,1 ,2} {
\ foreach \ c in {0 ,1 ,... ,4} {
\ pgfmathsetmacro \ n {\ r +\ c }
\ ifodd \ n
\ draw [ thick , fill = black ] (\ c -1 ,\ r -1) rectangle (\ c ,\ r );
\ else
\ draw [ thick , fill = white ] (\ c -1 ,\ r -1) rectangle (\ c ,\ r );
\ fi
}
}
Foreach, Continued
6
% define multiple variables for each loop
\ foreach \ b /\ c [ count =\ n ] in {3/ green ,6/ blue , -1/ red ,4/ teal } { 4
\ draw [ thick , black , fill =\ c ] 3
(\ n -1 ,0) rectangle (\ n ,0.4*\ b );
\ node [ above ] at (\ n -0.5 ,0.4*\ b ){\ b };
}
-1
π
2
\ foreach \ ang /\ label in {0/$0$ ,45/$\ frac {\ pi }{4}$ ,90/$\ frac {\ pi }{2}$} { π
\ draw [ dotted ] (0 ,0) -- (\ ang :2); 4
90◦
\ node at (\ ang :2.2) {{\ large \ label }};
45◦
\ node [ blue , fill = white ] at (\ ang :1.3) {\ ang $^\ circ $};
}
0◦ 0
Rotate
% rotate in loop
\ foreach \ a in {0 ,30 ,60 ,... ,330} {
\ draw [ fill = orange , rotate =\ a ] (0 ,0) to [ bend left =20] (2 ,0)
- -(1.2 ,0.7) - - cycle ;
}
Shift and Scale