更新

更新

是否可以在 PGFPlots 中以对数 x 轴为单位制作直方图,并使用大小相等(在对数空间中)的箱体?仅使用semilogxaxishist会按预期失败。显然,没有办法手动指定箱体边缘。我可以事先进行对数转换并调整标签,但这样我就会丢失对数间隔的 x 小刻度。

\documentclass{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\usepgfplotslibrary{statistics}

\begin{document}

\begin{tikzpicture}
  \begin{semilogxaxis}
    \addplot [fill=gray, samples=200, hist]  table [row sep=\\,y index=0] {1\\ 2\\ 1\\ 5\\ 4\\ 10\\ 7\\ 10\\ 9\\ 8\\ 9\\ 9\\};
  \end{semilogxaxis}
\end{tikzpicture}

\end{document}

在对数空间中寻找等距的箱子,而不是我们下面看到的:

在此处输入图片描述

更新

我可以通过预先转换和操作标签和刻度来实现这一点。我将问题保留,希望找到一种解决方案,避免预处理和烘焙刻度标记位置和标签。

  \begin{axis}[xtick={0,1},xticklabels={$10^0$,$10^1$},minor xtick={0.301,0.477,0.602,0.699,0.778,0.845,0.903,0.954,1.000}]
    % source data: 1\\ 2\\ 1\\ 5\\ 4\\ 10\\ 7\\ 10\\ 9\\ 8\\ 9\\ 9\\
    \addplot [fill=gray, samples=200, hist]  table [row sep=\\,y index=0] {0.00\\ 0.30\\ 0.00\\ 0.70\\ 0.60\\ 1.00\\ 0.85\\ 1.00\\ 0.95\\ 0.90\\ 0.95\\ 0.95\\}; % log10 transform
  \end{axis}

在此处输入图片描述

相关内容