如何使用TikZ为抛物线分隔的矩形两区域分别着色?
LaTeX 实现抛物线分割矩形区域着色
你需要将坐标轴矩形区域以抛物线 $-0.8*(x-1)^2$ 为界,上方填充蓝色、下方填充黄色,可通过以下修改后的代码实现:
\documentclass[border=2mm]{standalone} \usepackage{pgfplots} \usepgfplotslibrary{fillbetween} % 引入填充区域所需的库 \pgfplotsset{compat=newest} \begin{document} \begin{tikzpicture} \begin{axis}[ width=8.8cm, enlargelimits=false, axis on top, height=6.5cm, xlabel={\large $x$}, ylabel={\large $y$}, xtick=\empty, ytick=\empty, xmin=-8, xmax=8, ymin=-10, ymax=1, xticklabel style={font=\large}, ] % 绘制抛物线并命名路径,用于填充 \addplot [thick,name path=parabola] {-0.8*(x-1)^2}; % 绘制坐标轴顶部的水平路径(从xmin到xmax,y=ymax) \path[name path=top] (axis cs:\pgfkeysvalueof{/pgfplots/xmin},\pgfkeysvalueof{/pgfplots/ymax}) -- (axis cs:\pgfkeysvalueof{/pgfplots/xmax},\pgfkeysvalueof{/pgfplots/ymax}); % 绘制坐标轴底部的水平路径(从xmin到xmax,y=ymin) \path[name path=bottom] (axis cs:\pgfkeysvalueof{/pgfplots/xmin},\pgfkeysvalueof{/pgfplots/ymin}) -- (axis cs:\pgfkeysvalueof{/pgfplots/xmax},\pgfkeysvalueof{/pgfplots/ymin}); % 填充抛物线与顶部之间的区域为蓝色 \addplot[blue!50] fill between[of=parabola and top]; % 填充抛物线与底部之间的区域为黄色 \addplot[yellow!50] fill between[of=parabola and bottom]; % 重新绘制抛物线,确保在填充区域上方显示 \addplot [thick]{-0.8*(x-1)^2}; \end{axis} \end{tikzpicture} \end{document}
关键说明:
- 引入
fillbetween库,用于处理路径间的区域填充 - 分别定义抛物线路径、顶部边界路径、底部边界路径
- 使用
fill between命令填充两个路径间的区域,指定对应颜色 - 最后重新绘制抛物线,保证线条在填充区域上方显示
预期效果:
内容的提问来源于stack exchange,提问作者jiadong
相关产品推荐
相关产品推荐

