- 空的一
- 交叉影线
先感谢您。
\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 cs
,rel 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}