传说中的情节

传说中的情节

我不想让图例像图中所示那样位于图上方。我希望它位于图框内,而不是图上方。此外,我希望 y 轴的数字格式为 0.001、0.002 等。

在此处输入图片描述

我的图的代码是

\begin{figure}[!htb]
\begin{center}               
\begin{tikzpicture}          
\begin{axis}[xmin=0.09, ymin=0, xlabel={Froude number},ylabel={Resistance coefficient}, legend style={draw=none, legend columns=0}, width=10cm, height=7cm, legend pos=north west]

\addplot+ [mark=0,smooth] table [x=Fr, y=ct, col sep=comma] {model resistnace.csv};
\addlegendentry{$C_{T}$}

\addplot+ [mark=0,smooth] table [x=Fr, y=cf, col sep=comma] {model resistnace.csv};
\addlegendentry{$C_{F}$}

\addplot+ [mark=0,smooth] table [x=Fr, y=cr, col sep=comma] {model resistnace.csv};
\addlegendentry{$C_{R}$}


\end{axis}
\end{tikzpicture}
\caption{Resistance coefficients of ship model at full load default trim condition}
\label{resiscoef}
\end{center}
\end{figure}

答案1

需要注意的是:不要在环境center内使用环境figure:这会增加不必要的垂直空间。只需将其\centering放置在figure环境内的某个位置即可更好地完成工作。

由于我没有您的数据,我制作了一些具有大致相同行为的“虚拟”函数。您可以对以后的问题做同样的事情:这会让其他人更容易/更快地帮助您。

我看到你已经找到了legend pos解决大部分问题的关键。但对于你的图,所有的角都不是好的选择。查看手册(第 4.9.5 节),我们可以发现关键legend pos实际上只是一组快捷方式

legend style={at={(<x>,<y>)},anchor=<name>}

所以我们可以使用

legend style={at={(1,0.5)},anchor=east},

将图例放置在其东边缘,位于轴的右侧 ( x=1) 和中间 ( y=0.5)。您可以调整这些值和锚点,以将图例放置在轴视口中的任何位置。

现在,关于编号:查看手册第 4.13.1 节,您将在其中找到许多常见的设置。在本例中,我们需要

scaled y ticks=false,
yticklabel style={/pgf/number format/fixed,/pgf/number format/precision=3},

它禁用 y 轴的缩放刻度并设置固定格式,小数点后显示 3 位数字。

以下是完整的代码和输出:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}

\begin{document}
\begin{tikzpicture}          
\begin{axis}[
  xmin=0.09, 
  ymin=0, 
  xlabel={Froude number},
  ylabel={Resistance coefficient}, 
  legend style={draw=none, legend columns=0}, 
  width=10cm, 
  height=7cm, 
  legend pos=north west,
  %%%% BEGIN STYLE CHANGES/ADDITIONS %%%
  domain=0.092:0.208, % just for the example
  legend style={at={(1,0.5)},anchor=east},
  scaled y ticks=false,
  yticklabel style={/pgf/number format/fixed,/pgf/number format/precision=3},
]
  %%% DUMMY FUNCTIONS IN LIEU OF DATA %%%
  \addplot+ [mark=0,smooth] {5e-3-1e-3*x};
  \addlegendentry{$C_{T}$}
  \addplot+ [mark=0,smooth] {4.5e-3-3e-3*x};
  \addlegendentry{$C_{F}$}
  \addplot+ [mark=0,smooth] {7e-4+1e-3*x};
  \addlegendentry{$C_{R}$}
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容