从 matlab2tikz 图中删除 10 基 x 刻度标签

从 matlab2tikz 图中删除 10 基 x 刻度标签

我正在尝试使用 Matlab2Tikz 从 Matlab 中提取一些用于 XeLaTex 的图。除了带有对数对数刻度的图(我添加了一个图,见下文),其他一切都很顺利。左下方的图显示了对数对数刻度,y 轴上有 10 进制刻度标签,x 轴上有对数刻度但没有 10 进制。执行 matlab2tikz 命令时,我得到了 10 进制 x 刻度标签,这显然是我不需要的。相反,我希望它能像 Matlab 绘制的那样。

我在 stackexchange 上没有发现类似的问题,所以我想我会自己问一下。

提前非常感谢您!

编辑:这是代码:

\begin{axis}[%
width=\fwidth,
height=\fheight,
scale only axis,
separate axis lines,
every outer x axis line/.append style={white!15!black},
every x tick label/.append style={font=\color{white!15!black}},
xmode=log,
xmin=1,
xmax=8,
xminorticks=true,
every outer y axis line/.append style={white!15!black},
every y tick label/.append style={font=\color{white!15!black}},
ymode=log,
ymin=0.0001,
ymax=1,
yminorticks=true,
ylabel={E(K)},
at=(plot3.below south west),
anchor=above north west
]
\addplot [color=red,solid,mark=o,mark options={solid},forget plot]
  table[row sep=crcr]{1 0.0711717716815872\\
2   0.0115273918542792\\
3   0.00554837295582636\\
4   0.00390493819982627\\
5   0.00257462558614867\\
6   0.000676170571559625\\
7   0.000211268404410399\\
8   0.000179355383693616\\
};
\end{axis}

左下角的图是我喜欢的样子,右下角的图是我在 LaTeX 中得到的样子

答案1

对于 y 轴,您可以使用ytickend提供所需刻度位置的列表(它允许...快捷方式)。对于您的情况,您可以使用

ytickten={-4,-2,0}

对于 x 轴,您需要使用以下方法更改刻度表示

  xtick=data,
  xticklabel=\pgfmathparse{e^\tick}\pgfmathprintnumber{\pgfmathresult}

完整示例:

\documentclass{article}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{loglogaxis}[%
  scale only axis,
  separate axis lines,
  every outer x axis line/.append style={white!15!black},
  xmode=log,
  xmin=1,
  xmax=8,
  every outer y axis line/.append style={white!15!black},
  every y tick label/.append style={font=\color{white!15!black}},
  ymode=log,
  ymin=0.0001,
  ymax=1,
  ylabel={E(K)},
  anchor=above north west,
  ytickten={-4,-2,0},
  xtick=data,
  xticklabel=\pgfmathparse{e^\tick}\pgfmathprintnumber{\pgfmathresult}
]
\addplot [color=red,solid,mark=o,mark options={solid},forget plot]
  table[row sep=crcr]{
1 0.0711717716815872\\
2   0.0115273918542792\\
3   0.00554837295582636\\
4   0.00390493819982627\\
5   0.00257462558614867\\
6   0.000676170571559625\\
7   0.000211268404410399\\
8   0.000179355383693616\\
};
\end{loglogaxis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

对我来说,现有的答案不能正常工作,因为一些值仍然以不同的方式表示,例如20呈现为19.99

现在,我终于通过在文件的选项log ticks with fixed point中插入该行来解决问题:\begin{axis}[...].tikz

\begin{axis}[%
...,
log ticks with fixed point
]
...

使用matlab2tikz,可以使用以下代码实现此目的:

matlab2tikz(tikzFileName, ...
   'extraaxisoptions', 'log ticks with fixed point'... % this line is new
);

相关内容