我使用 pyplot 绘制了一个图表,并将其保存为 pdf 格式。然后我想在 tikz 中用相同的颜色绘制一条线,但颜色不匹配。
我使用以下方法创建图表:
#!/usr/bin/env python
import numpy
import matplotlib.pyplot as plt
import sys
x=numpy.arange(0,10,0.1)
y=x
plt.plot(x,y,color='green', linewidth=15)
plt.savefig('graph.pdf')
plt.show()
,然后将其包含在我的文档中,如下所示:
\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\begin{document}
\centering
green: \tikz{\draw[green,ultra thick] (0,0) -- ++(1,0);}
\includegraphics[width=\textwidth]{graph.pdf}
\end{document}
这只是我的 MWE,我希望有一种适用于所有颜色的通用方法,因为我的实际论文文档中有更多颜色。
答案1
我猜想,如果你在两种情况下以相同的方式定义颜色,它们会匹配。xcolor
和都matplotlib
允许你使用 RGB 元组(值在 0 到 1 范围内)来定义颜色,因此你可能会说例如
green = (0,1,0)
plt.plot(x,y,color=green)
在matplotlib
,和
\definecolor{green}{rgb}{0,1,0}
\draw [green] (0,0) -- (1,0);
在你的 LaTeX 文档中。
一个例子
仅作为示例,并尝试pythontex
一下:
\documentclass{article}
\usepackage{pythontex}
\usepackage{tikz}
\definecolor{green}{rgb}{0,1,0}
\begin{document}
\tikz\draw[line width=3mm,green] (0,0) -- (5,0);
\begin{pycode}
import matplotlib.pyplot as plt
green = (0,1,0)
fig,ax = plt.subplots(figsize=(5,3))
ax.plot([0,1],[0,1],color=green,linewidth=3)
fig.savefig('fig.pdf',bbox_inches='tight')
\end{pycode}
\includegraphics{fig}
\end{document}
使用以下方式编译
pdflatex filename.tex
pythontex filename
pdflatex filename
你会得到