pgfplots 中的背景颜色超出了图的轴

pgfplots 中的背景颜色超出了图的轴

我想为我的pgfplots图添加一种超出图轴的背景颜色。请参阅下面的图片以了解详情;我想为图添加一种背景颜色,例如图中的图。

您将如何实现这一目标?

在此处输入图片描述

示例来自:pgfplots 手册(Christian Feuersänger,2012,第 20 页)

答案1

正如 Qrrbrbirlbel 所建议的,您可以使用backgroundsTikZ 中的库。我提供的示例使用 pgfmanual 和 pgfplots 文档中采用的预定义颜色,但可以通过特定键轻松更改。

代码:

\documentclass[a4paper,11pt]{article}
\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.7}
\usetikzlibrary{backgrounds}
% background color definition from pgfmanual-en-macros.tex
\definecolor{graphicbackground}{rgb}{0.96,0.96,0.8}
% key to change color
\pgfkeys{/tikz/.cd,
  background color/.initial=graphicbackground,
  background color/.get=\backcol,
  background color/.store in=\backcol,
}
\tikzset{background rectangle/.style={
    fill=\backcol,
  },
  use background/.style={    
    show background rectangle
  }
}



\begin{document}
\begin{tikzpicture}[use background]
\begin{axis}
\addplot {sin(deg(x))};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}[background color=orange!20,use background]
\begin{axis}
\addplot+[only marks] {sin(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}

结果:

在此处输入图片描述

答案2

另一种可能性是使用以下方法在单独的文件中创建图表和图形:standalone\includegraphics并通过颜色框提供背景颜色,将它们包含到主文档中。

standalone提供选项tikzborder。第一个选项将每个选项放在tikzpicture单独的页面中。这样,您就可以拥有一个包含所有图/tikzfigures 的文件,并使用命令page=...中的选项选择它们\includegraphicsborder选项会放大具有一定长度的外部边距的图形。因此,处理下一个文件时,您将获得一个包含两页的 pdf 文件。每页将包含一个放大 2mm 的图。

% file: 101603b.tex
\documentclass[tikz,border=2mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.7}

\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot {sin(deg(x))};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot+[only marks] {sin(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}

下一个文件是包含图形的主文档。命令\myincludegraphics添加了\colorboxbackgroundcolor您可以使用 更改它,或者在定义\colorlet中包含背景颜色作为参数。\myincludegraphics

%file: 101603.tex
\documentclass[a4paper,11pt]{article}
\usepackage{graphicx}
\usepackage{xcolor}

\definecolor{backgroundcolor}{RGB}{253,245,238}

\newcommand{\myincludegraphics}[2][]{%
\begingroup\setlength{\fboxsep}{0pt}%
\colorbox{backgroundcolor}{\includegraphics[#1]{#2}}%
\endgroup}


\begin{document}

\myincludegraphics[page=1]{101603b}

\colorlet{backgroundcolor}{red!20}
\myincludegraphics[page=2]{101603b}

\end{document}

结果类似于Claudio 的回答

相关内容