如何从表加载时更改 xticklabel 的格式

如何从表加载时更改 xticklabel 的格式

我有以下代码

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{filecontents}

\begin{filecontents}{testdata.dat}
  6.3e-05 0.8767984145412976 0.6
  0.000125 12.85965577546382 9.970000000000001
  0.00025 16.95140970189756 13.76
  0.0005 14.61328253838453 12.13
  0.001 21.24630316052836 17.76
  0.002 33.45255040918443 27.81
  0.004 0 17.97
  0.0056 0 0
  0.008 0 0
  0.0112 0 0
  0.016 0 0
  0.0224 0 0
  0.0315 0 0
\end{filecontents}

\usetikzlibrary{calc}
\usetikzlibrary{pgfplots.groupplots}
\pgfplotstableread{testdata.dat}\datatable
\begin{document}

\begin{tikzpicture}
\begin{axis}[ 
  ybar=0pt,
  /pgf/bar width=5pt,
  bar cycle list,
  width=6cm,
  height=2cm,
  scale only axis,
  xmajorgrids,
  ymin=0, ymax=100, 
  ymajorgrids,
  tick label style={font=\scriptsize},
  x tick label style={/pgf/number format/sci},
  xticklabels from table={\datatable}{0}
]
  \addplot table[x expr=\coordindex,y=1]{\datatable};
  \addplot table[x expr=\coordindex,y=2]{\datatable}; 
\end{axis}
\end{tikzpicture}
\end{document}

这给了我这个情节

在此处输入图片描述

现在,我想要科学格式,而不是 xticklabels 的固定格式,并且希望每个传递的坐标上都有一个 xtick。我该如何实现?我试过了,x tick label style={/pgf/number format/sci}但没有用。

更新:

为了拥有每个 xtick,我必须使用选项xtick=data

答案1

1xtick=data表示来自数据的 x 轴。

2 但xticklabels from table意味着来自数据的 x 轴格式。

也就是说,如果您希望从 读取图例\datatable,请使用第一种方法。

来自的示例PGFplots 官方网站显示了两种方法的不同。示例 323(或手册版本 1.8 第 302 页)

    xmin=-4.7124, xmax=4.7124,
    xtick={-4.7124,-1.5708,...,10},
    xticklabels={$-\frac{3}{2} \pi$,$-\pi/2$,$\pi/2$,$\frac{3}{2} \pi$},

注意,xtick指的是值,而xticklabels指的是格式。

所以如果我将你的代码改为 ,xticklabels from table={\datatable}{0}xtick=data完成了。但这样会很丑陋。

相关内容