使用轴单位(axis cs)作为线宽

使用轴单位(axis cs)作为线宽

假设我的绘图在公制 x,y 平面中显示几何对象,因此一个轴单位等于 1m。使用公制单位绘制axis cs坐标很容易,如下例所示:

\begin{tikzpicture}
        \begin{axis}[
            xmin=0,
            xmax=20,
            ymin=0,
            ymax=20,
            axis lines=center,
            axis equal
            ]
            \draw[line width=10mm] (axis cs: 10,0) -- (axis cs: 10,10);
        \end{axis}
    \end{tikzpicture}

有没有办法定义宽度线的宽度是否也以轴坐标单位表示(可能用 veclen 等)? 似乎以某种像素单位\draw[line width=10mm]来定义文档目标单位中的宽度。\draw[line width=10]

答案1

当然。(在足够新的 pgfplots 版本中axis cs:不再需要。

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
        \begin{axis}[
            xmin=0,
            xmax=20,
            ymin=0,
            ymax=20,
            axis lines=center,
            axis equal
            ]
            \draw let \p1=($(axis cs: 1,0)-(axis cs: 0,0)$) in 
            % \x1 is now one axis x unit
            [line width=2*\x1] (axis cs: 10,0) -- (axis cs: 10,10);
        \end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容