You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:20:59