相当于中间点的“缩短

相当于中间点的“缩短

大家好,

我尝试使用 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}

在此处输入图片描述

相关内容