
pgfplotsパッケージを使用して2つの図を描きましたスタンドアロンプロット。これら 2 つのプロットを同じ高さにしたかったのですが、失敗しました。
これが私の論文に掲載した画像です。
ご覧のとおり、右側のものは左側のものより少し高くなっています。
私は以下のことを試しました:
を使用します
scaled x ticks=false
。この問題はこの方法で解決できます。ただし、数値が近すぎるため、好ましくありません。指数が原因と思われます。そこで、次に 2. を試しました。指数を他の場所に移動させる
every x tick scale label/.style={ at={(rel axis cs:0.9,-0.2)} }
しかし、この問題は解決できず、依然として同じ高さではありません。
左のプロットのコード:
\usepackage{pgfplots, pgfplotstable}
\pgfplotsset{compat=1.16}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{mathpazo}
\begin{document}
\pgfplotstableread[col sep=&, header=true]{
noise level &rmse &mean error
0 &13.8735 &5.4890
0.001 &14.8757 &5.6138
0.002 &16.6551 &5.8121
0.003 &18.1159 &6.0338
0.004 &20.0011 &6.2824
0.005 &21.9840 &6.5650
0.006 &23.8113 &6.8693
0.007 &25.8505 &7.1813
0.008 &27.4285 &7.5026
0.009 &29.4434 &7.8572
0.01 &31.1316 &8.2160
}\datatableentry
\begin{tikzpicture}
\begin{axis}[
major grid style={line width=.5pt,draw=gray!50},
title={\quad},
xtick ={0.000,0.002,...,0.010},
minor xtick ={0.001,0.003,...,0.01},
ymajorgrids,
% yminorgrids,
xtick pos=left,
ytick pos=left,
scaled x ticks=true,
ymin=0,
xmin=0,
xmax=0.01,
ymax=40,
legend style={legend pos= north west, legend cell align=left},
mark size=2,
xlabel={$p$},
ylabel={Value (m)},
tick scale binop=\times,
semithick,
height=5cm,
mark repeat={2},
every x tick scale label/.style={
at={(rel axis cs:0.9,-0.2)},overlay
},
]
% red,gray,yellow,green,lime,black,red,blude,cyan
\addlegendentry{RMSE};
\addplot [color=orange,thick,mark=o] table [y=rmse, x=noise level] {\datatableentry};
\addlegendentry{mean error};
\addplot [color=cyan,thick,mark=diamond] table [y=mean error, x=noise level] {\datatableentry};
\end{axis}
\end{tikzpicture}
\end{document}
正しいプロットのコード
\documentclass{standalone}
\usepackage{pgfplots, pgfplotstable}
\pgfplotsset{compat=1.16}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{mathpazo}
\begin{document}
\pgfplotstableread[col sep=&, header=true]{
noise level &rmse &mean error
0 &13.8735 &5.4890
0.2 &13.8491 &5.4878
0.4 &14.1604 &5.5624
0.6 &14.2584 &5.6174
0.8 &14.5146 &5.7072
1.0 &15.0029 &5.8409
1.2 &14.9655 &5.9318
1.4 &15.2164 &6.0813
1.6 &15.5703 &6.2642
1.8 &15.9604 &6.4683
2.0 &16.4144 &6.7071
2.2 &16.8802 &6.9842
2.4 &17.6332 &7.3055
2.6 &18.2558 &7.6403
2.8 &19.1625 &8.0250
3.0 &19.9934 &8.4352
}\datatableentry
\begin{tikzpicture}
\begin{axis}[
%grid style={line width=.1pt, draw=gray!20},
major grid style={line width=.5pt,draw=gray!50},
title={\quad},
% minor y tick num=4,
% xtick=data,
xtick ={0,1,...,3},
minor xtick={0.2,0.4,...,3},
ymajorgrids,
% yminorgrids,
xtick pos=left,
ytick pos=left,
scaled y ticks=true,
ymin=0,
xmin=0,
xmax=3,
ymax=25,
ytick={0,5,...,25},
legend style={legend pos= north west,legend cell align=left},
mark size=2,
xlabel={$\sigma_n$(degrees)},
ylabel={Value (m)},
tick scale binop=\times,
height=5cm,
semithick,
mark repeat={2},
scaled x ticks={base 10:0}
]
% red,gray,yellow,green,lime,black,red,blude,cyan
\addlegendentry{RMSE};
\addplot [color=orange,thick,mark=o] table [y=rmse, x=noise level] {\datatableentry};
\addlegendentry{mean error};
\addplot [color=cyan,thick,mark=diamond] table [y=mean error, x=noise level] {\datatableentry};
\end{axis}
\end{tikzpicture}
\end{document}
これらは次のように論文に挿入されます。
\begin{figure}[htb]
\centering
\subfloat[Performance under different levels of increment noise]{\includegraphics[height=4cm]{incremental_noise/incremental_noise}}
\hspace{.5cm}
\subfloat[Performance under different levels of deviation noise]{\includegraphics[height=4cm]{deviation_noise/deviation_noise}}
\caption{Resistence to different kind of noise.}
\label{fig:noise_resistence}
\end{figure}
この問題を解決するアイデアはありますか? ありがとうございます!
答え1
問題を解決するために何をすべきかはわかっています。\raisebox{-0.25ex}[0pt][0pt]
メインの tex ファイルに追加すると、結果は問題なく見えます。この回答を見る詳細については。