如何在图表中绘制矩形?(pfgplots)

如何在图表中绘制矩形?(pfgplots)

我想画这样一个矩形。->在此处输入图片描述

  1. 空的一
  2. 交叉影线

先感谢您。

 \documentclass{article}
    \usepackage{pgfplots}
    %\pgfplotsset{compat=1.14}
    \begin{document}
    \begin{tikzpicture}
      \begin{semilogxaxis}
        [
            enlarge x limits=false,
            no marks,
            grid=none,
            xmin=1e4, xmax=22260785,
            ymin=0, ymax=120,
            ylabel={$\sigma_{a}$},
            xlabel={$N$},
            samples=400 
         ]
           \begin{scope}[green] 
             \draw[orange,dashed] ({axis cs:50045,0}|-{rel axis cs:0,1}) -- ({axis cs:50045,0}|-{rel axis cs:0,0});
             \draw[dashed,green] ({rel axis cs:1,0}|-{axis cs:0,18.385735235}) -- ({rel axis cs:0,0}|-{axis cs:0,18.385735235});
           \end{scope}
      \end{semilogxaxis}
    \end{tikzpicture}
    \end{document}

答案1

好了,了解了axis csrel axis cs您就差不多找到解决方案了。请注意,如果您有\pgfplotsset{compat=1.11}或更高版本,axis cs则为默认值,因此您不必指定它。

无论如何,要绘制矩形,请使用

\draw (x1,y1) rectangle (x2,y2);

要用对角线填充矩形,请添加\usetikzlibrary{patterns},然后

\fill [pattern=north east lines] (x1,y1) rectangle (x2,y2);

pattern=north west lines会给出向另一方向倾斜的线条。如果您还想绘制边框,请使用\filldraw,使用 更改边框的颜色draw=<color>

例如,要对左下角进行交叉阴影处理,您可以使用

\filldraw [draw=red,pattern=north east lines] (rel axis cs:0,0) rectangle (50045,18.385735235); 

请注意,如果compat设置为1.10或更低,或者您使用的版本pgfplots早于 1.11,则必须使用axis cs:第二个坐标,即

\filldraw [draw=red,pattern=north east lines] (rel axis cs:0,0) rectangle (axis cs:50045,18.385735235); 

其他一些例子:

在此处输入图片描述

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14} %don't need axis cs: with 1.11 or higher
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}
  \begin{semilogxaxis}
    [
        enlarge x limits=false,
        no marks,
        grid=none,
        xmin=1e4, xmax=22260785,
        ymin=0, ymax=120,
        ylabel={$\sigma_{a}$},
        xlabel={$N$},
        samples=400 
     ]

         \draw[orange,dashed] ({50045,0}|-{rel axis cs:0,1}) -- ({50045,0}|-{rel axis cs:0,0});
         \draw[dashed,green] ({rel axis cs:1,0}|-{0,18.385735235}) -- ({rel axis cs:0,0}|-{0,18.385735235});

         \filldraw [draw=red,pattern=north east lines] (1e5,20) rectangle (1e6,40);
         \draw [thick,blue] (1e6,40) rectangle (1e7,60);
  \end{semilogxaxis}
\end{tikzpicture}
\end{document}

相关内容