我想为我的pgfplots
图添加一种超出图轴的背景颜色。请参阅下面的图片以了解详情;我想为图添加一种背景颜色,例如图中的图。
您将如何实现这一目标?
示例来自:pgfplots 手册(Christian Feuersänger,2012,第 20 页)
答案1
正如 Qrrbrbirlbel 所建议的,您可以使用backgrounds
TikZ 中的库。我提供的示例使用 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
提供选项tikz
和border
。第一个选项将每个选项放在tikzpicture
单独的页面中。这样,您就可以拥有一个包含所有图/tikzfigures 的文件,并使用命令page=...
中的选项选择它们\includegraphics
。border
选项会放大具有一定长度的外部边距的图形。因此,处理下一个文件时,您将获得一个包含两页的 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
添加了\colorbox
。backgroundcolor
您可以使用 更改它,或者在定义\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 的回答。