我经常遇到这样的问题:x 轴上可用的数据点太多,我想在实际绘图中显示所有数据点,但只想显示部分刻度。例如,如果我的 x 轴上有值 2^3、..、2^32,我只想显示 2^3、2^5、2^7 等(显示一个,跳过一个)
示例输出如下:
图形代码为:
\begin{figure}[!htb]
\centering
\begin{tabular}{rl}
\hspace{-5mm}
\begin{tikzpicture}
\begin{axis}[title = GB/s, xtick=data, xmode=log,log basis x={2},
width=8cm, height=5.5cm, ymajorgrids,legend columns=-1,
legend entries={MinMax UT, MinMax SSE, MinMax AVX2},
legend to name=named, legend style = {font = {\sffamily\scriptsize}} ]
\pgfplotstableread{benchmarks/minmaxexcess/data.dat} \tableRAW
\foreach \p in {1,3,5} {\addplot table [y index = \p] from \tableRAW;}
\end{axis}
\end{tikzpicture}%
\hspace{-4mm}
&
\begin{tikzpicture}
\begin{axis}[title = Average CM/op, ymode=log, xtick=data, xmode=log,log basis x={2},
width=8cm, height=5.5cm, ymajorgrids, ]
\pgfplotstableread{benchmarks/minmaxexcess/data.dat} \tableRAW
\foreach \p in {2,4,6} {\addplot table [y index = \p] from \tableRAW;}
\end{axis}
\end{tikzpicture}%
\\
\multicolumn{2}{c}{\ref{named}}\\
\end{tabular}
\vspace{-3mm}
\caption{Average values obtained for extrema computation experiment.}
\label{fig:extrema}
\end{figure}
答案1
您可以直接给出 xticks。手册显示可以使用1,3,...,19
书写风格(就像在foreach
语句中使用一样)。没有数据的最小示例如下
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{loglogaxis}[
log basis x = {2},
xtickten = {5,7,...,19},
]
\addplot[domain=100:1000] {x^2};
\end{loglogaxis}
\end{tikzpicture}
\end{document}
该xtickten
选项用于提供刻度,而不是xtick
因为我给出了指数而不是完整值。
顺便说一句:您的 MWE 仍然不是很有用,因为我们没有您的数据文件。一个好主意应该是可以复制和编译而无需进一步修改的文件。