由于 paraview 图例在 latex 文档中出现时看起来很糟糕,所以我想使用 Python 的 matplotlib 和 Nico 的matplotlib2tikz包裹。
所以我编写了一个python脚本matplotlib4colorbars,生成一个 tikz 文件,然后可以将其包含在 tex 文档中。单个文件中的 tex 部分内容为(您必须下载包含的图像图片1.png产生输出)
\documentclass[a4paper,10pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
%opening
\begin{document}
\begin{figure}
\newlength\figureheight
\newlength\figurewidth
\setlength\figureheight{8.5cm}
\setlength\figurewidth{2cm}
% \input{colorbar.tikz}
\begin{tikzpicture}
\begin{axis}[
title={$\mathbf{v_x}$},
xmin=0, xmax=0.07635,
ymin=-0.247, ymax=1.28,
axis on top,
scaled x ticks=false,
xtick={,,},
xticklabels={,,},
width=\figurewidth,
height=\figureheight
]
\addplot graphics [includegraphics cmd=\pgfimage,xmin=0, xmax=0.07635, ymin=-0.247, ymax=1.28] {img1.png};
\path [draw=black, fill opacity=0] (axis cs:13,1.28)--(axis cs:13,1.28);
\path [draw=black, fill opacity=0] (axis cs:0.07635,13)--(axis cs:0.07635,13);
\path [draw=black, fill opacity=0] (axis cs:13,-0.247)--(axis cs:13,-0.247);
\path [draw=black, fill opacity=0] (axis cs:0,13)--(axis cs:0,13);
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
并且它产生了,我发现这比 paraview 传奇更有吸引力
然而,我无法重现突出的yticklabels
。所以问题是,如何使 pgfplot 具有边缘点作为标签?以及如何使这些边缘标签比其他标签大一点?
答案1
extra y ticks={<ymin>, <ymax>}
您可以使用添加额外刻度的功能。包括您可以手动将值<ymin>
和<ymax>
写入环境的键。由于您已经在环境键中明确指定了限制和,axis
因此您也可以使用。extra y ticks={\pgfkeysvalueof{/pgfplots/ymin}, \pgfkeysvalueof{/pgfplots/ymax}}
ymin
ymax
axis
要使额外的刻度标签比其他刻度标签更大,请使用 指定样式every extra y tick/.style={font=\large}
。
所以axis
环境应该是这样的
\begin{axis}[
title={$\mathbf{v_x}$},
xmin=0, xmax=0.07635,
ymin=-0.247, ymax=1.28,
axis on top,
scaled x ticks=false,
xtick={,,},
xticklabels={,,},
extra y ticks={
\pgfkeysvalueof{/pgfplots/ymin},
\pgfkeysvalueof{/pgfplots/ymax}
},
% alternatively
% extra y ticks={-0.247, 1.28},
every extra y tick/.style={
font=\large,
tick style=transparent, % avoid tick marks overlapping axis lines
/pgf/number format/.cd,
fixed,
precision=3
},
width=\figurewidth,
height=\figureheight
]
输出结果
这会导致刻度标签非常紧密,因此有可能将其包含 yticklabel pos=right
在样式中every extra y tick/.style
。
\begin{axis}[
title={$\mathbf{v_x}$},
xmin=0, xmax=0.07635,
ymin=-0.247, ymax=1.28,
axis on top,
scaled x ticks=false,
xtick={,,},
xticklabels={,,},
extra y ticks={
\pgfkeysvalueof{/pgfplots/ymin},
\pgfkeysvalueof{/pgfplots/ymax}
},
% alternatively
% extra y ticks={-0.247, 1.28},
every extra y tick/.style={
font=\large,
tick style=transparent, % avoid tick marks overlapping axis lines
yticklabel pos=right,
/pgf/number format/.cd,
fixed,
precision=3
},
width=\figurewidth,
height=\figureheight
]
这给出了输出
如果你想要左边的数字更大,只需添加
yticklabel pos=right,
every extra y tick/.style={
font=\large,
tick style=transparent, % avoid tick marks overlapping axis lines
yticklabel pos=left,
/pgf/number format/.cd,
fixed,
precision=3
}