大家好,
我尝试使用 tikz 和 pgf 绘制数据集。我希望图中的点是相连的,但线不应该接触这些点。我可以通过使用和来实现第一个点和最后一个点,shorten <=
但shorten >=
线仍然直接延伸到所有其他点。我怎样才能在每个点周围实现间隙?
这是我当前尝试的一个简单示例:
\documentclass[10pt]{article}
\usepackage{pgf,tikz,pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0,
xmax=100,
ymin=0,
ymax=100,
grid=major
]
\addplot [mark=*, line width=1pt, shorten <= 5pt, shorten >= 5pt] table {
10 10
20 30
30 25
40 31
50 32
60 45
};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
你可以mark options
像这样使用mark options={draw=white,}
:
\documentclass[10pt]{article}
\usepackage{pgfplots}
\begin{document}
%\tikzset{every mark/.append style={draw=white}}
\begin{tikzpicture}
\begin{axis}[
xmin=0,
xmax=100,
ymin=0,
ymax=100,
grid=major
]
\addplot [mark=*,mark options={draw=white,}, line width=1pt] table {
10 10
20 30
30 25
40 31
50 32
60 45
};
\end{axis}
\end{tikzpicture}
\end{document}
我们mark options={draw=white,line width=3pt,scale=2}
得到,
调整适合您的参数。
如果需要自定义o
标记,可以定义一个
\pgfdeclareplotmark{h}{
\fill[white](0,0) circle (1.5\pgfplotmarksize);
\draw (0,0) circle (\pgfplotmarksize);
}
1.5
根据需要更改此处。
代码:
\documentclass[10pt]{article}
\usepackage{pgfplots}
\begin{document}
%\tikzset{every mark/.append style={draw=white}}
\pgfdeclareplotmark{h}{
\fill[white](0,0) circle (1.5\pgfplotmarksize);
\draw (0,0) circle (\pgfplotmarksize);
}
\begin{tikzpicture}
\begin{axis}[
xmin=0,
xmax=100,
ymin=0,
ymax=100,
grid=major
]
\addplot [mark=h,mark options={line width=0.6pt},line width=1pt] table {
10 10
20 30
30 25
40 31
50 32
60 45
};
\end{axis}
\end{tikzpicture}
\end{document}