如何从文件中读取轴刻度

如何从文件中读取轴刻度

我有一个包含直方图的文件,我想绘制它。这是我的代码:

\documentclass{report}

\usepackage{pgfplots} % for histograms

\begin{document}

\begin{tikzpicture} 
    \begin{axis}[ height = 0.4\paperheight
                , width = 0.7\paperwidth
                ]

        \addplot [ybar interval, color = black, fill = blue, line width = 0.5mm] 
            table {hist1.data};
    \end{axis}
\end{tikzpicture}

\end{document}

我可以将 x 和 y 刻度设置为文件中的值吗?就像这样(不需要点): 例子

文件“hist1.data”:

 1 0.06
 3 0.23
 5 0.35
 7 0.2
 9 0.1
 11 0.04
 13 0.01
 15 0
 17 0
 19 0.01
 21 0

如果这是重复的问题,我很抱歉,但我找不到答案。

答案1

如果您设置ytick=data,xtick=data,刻度将放置在第一个 中使用的 y 和 x 值处\addplot。并且extra y ticks={0,0.05,...,0.35}您也可以获得默认刻度。(当然,对于不同的数据,您必须更改值。之前的两个数字...是列表中的前两个值,步长是它们之间的差值。列表在 之后的数字处停止...。)

filecontents内容仅用于使示例自成一体,您不需要它供自己使用,因为您已经拥有该hist1.data文件。

用于yticklabel style获取0.06而不是6\cdot10^{-2}作为刻度标签。

代码输出

\documentclass{report}
\usepackage{pgfplots} % for histograms
\usepackage{filecontents}
\begin{filecontents*}{hist1.data}
 1 0.06
 3 0.23
 5 0.35
 7 0.2
 9 0.1
 11 0.04
 13 0.01
 15 0
 17 0
 19 0.01
 21 0
\end{filecontents*}
\begin{document}

\begin{tikzpicture} 
\begin{axis}[
  height = 0.4\paperheight,
  width = 0.7\paperwidth,
  extra y ticks={0,0.05,...,0.35},
  ytick=data,xtick=data,
  yticklabel style={
   /pgf/number format/fixed,
   /pgf/number format/precision=2,
  }
]

 \addplot [ybar interval, color = black, fill = blue, line width = 0.5mm] 
            table {hist1.data};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容