Notes:
- I have replaced the
scriptsize environment (that does not even exist) with the option font=\scriptsize on the \tkzAxeXY macro.
- I used the
standalone class.
With plain TikZ you have a few possibilities:
The cross out shape from the shapes.misc library offers you the possibility to cross out a node. Normally this is used to visualize something on text (like this), but with the options minimum height and minimum width along side with a zero inner sep we get a well-defined cross. The line-width settings (thick) is recognized as well.
point/.style={
thick,
draw=gray,
cross out,
inner sep=0pt,
minimum width=4pt,
minimum height=4pt,
},
This point node can now be applied either manually:
\node[point] at (1,4) {};
or automatically with a special to path (in the line style):
to path={% works only with "to" and not "--"
-- (\tikztotarget) node[at start,point] {} node [at end,point] {} \tikztonodes
}
The plot paths of TikZ offers quite the same with a lot of outher “marks”.
The pline style is similar to the previous line style. It contains also the every plot options:
pline/.style={% plot line
every plot/.style={
mark=x,
mark options={
gray,
thick,
},
mark size=4pt,
},
very thick,
black,
},
Code (shape)
\documentclass[tikz,border=2mm]{standalone}
\usepackage{tkz-fct}
\usetikzlibrary{shapes.misc}
\tikzset{
line/.style={
very thick,
black,
to path={% works only with "to" and not "--"
-- (\tikztotarget) node[at start,point] {} node [at end,point] {} \tikztonodes
}
},
point/.style={
thick,
draw=gray,
cross out,
inner sep=0pt,
minimum width=4pt,
minimum height=4pt,
},
}
\begin{document}
\begin{tikzpicture}
\tkzInit [xmin=0,xmax=21,ymin=0,ymax=7]
\tkzGrid[color = gray!30!white]
\tkzAxeXY[font=\scriptsize]
\draw[line] (1,4) -- (6,1);
\draw[line] (2,1) to (5,4)
(3,1) to (6,4)
(4,1) to (8,5)
(3,4) to (9,3)
(7,2) to (9,3)
(6,7) to (9,1);
\draw[line] (11,1) to (16,5)
(13,2) to (14,2)
(14,1) to (14,2)
(14,3) to (15,2)
(15,4) to (15,3)
(13,4) to (13,3);
\draw[line] (17,3) to (21,3)
(19,1) to (19,5);
\path[every node/.style={point}]
node at (1,4) {}
node at (6,1) {};
\end{tikzpicture}
\end{document}
Output (shape)

Code (plot)
\documentclass[tikz,border=2mm]{standalone}
\usepackage{tkz-fct}
\tikzset{
pline/.style={% plot line
every plot/.style={
mark=x,
mark options={
gray,
thick,
},
mark size=4pt,
},
very thick,
black,
},
}
\begin{document}
\begin{tikzpicture}
\tkzInit [xmin=0,xmax=21,ymin=0,ymax=7]
\tkzGrid[color = gray!30!white]
\tkzAxeXY[font=\scriptsize]
\draw[pline] plot coordinates {(1,4) (6,1)}
plot coordinates {(2,1) (5,4)}
plot coordinates {(3,1) (6,4)}
plot coordinates {(4,1) (8,5)}
plot coordinates {(3,4) (9,3)}
plot coordinates {(7,2) (9,3)}
plot coordinates {(6,7) (9,1)};
\draw[pline] plot coordinates {(11,1) (16,5)}
plot coordinates {(13,2) (14,2)}
plot coordinates {(14,1) (14,2)}
plot coordinates {(14,3) (15,2)}
plot coordinates {(15,4) (15,3)}
plot coordinates {(13,4) (13,3)};
\draw[pline] plot coordinates {(17,3) (21,3)}
plot coordinates {(19,1) (19,5)};
\end{tikzpicture}
\end{document}
Output (plot)

cross outshape for a node. You could create ato paththat does this automatically. You could define a new arrow. … But\draw[point] (1,4) circle (2pt);will always output a circle … – Qrrbrbirlbel Jan 05 '13 at 12:37