最后一个直方图条缺失 - PgfPlots

最后一个直方图条缺失 - PgfPlots

我正在尝试绘制基于数量级的对数直方图。

我有这个来源:

\documentclass[twocolumn, a4paper]{article}
\usepackage{pgfplots}
\begin{document}

\begin{figure}
\begin{tikzpicture}
\begin{semilogxaxis}[xlabel=Number of Active Satellites, ylabel=Frequency]
\addplot[color=red, ybar interval]
plot coordinates {(5.5,856) (55,110) (550,14) (5500,122)};
\end{semilogxaxis}
\end{tikzpicture}
\caption{Number of active satellites controlled by operator}
\label{fig:satellitesbyoperatorhisto}
\end{figure}

\end{document}

输出结果如下:

图表

您可以看到最后一个条 (1000 <= x < 10000) 似乎缺失了。

为什么?

答案1

请允许我把我的评论延伸到答案中。

在软件包文档的第 87 页中,ybar 间隔声明:

使用间隔时,有一个概念上的区别:间隔由两个坐标定义。由于 ybar 对于每个间隔都有一个值,因此第 i 个条形定义为

  1. 第 i 个坐标的 y 值,
  2. 第 i 个坐标的 x 值作为左区间边界,
  3. 第 (i + 1) 个坐标的 x 值作为右区间边界。

因此,多了一个坐标:最后一个坐标仅用于确定间隔宽度;其 y 值不会影响条形的外观。

关于这一点,您的图像(如果应该有四个间隔条)需要额外的坐标来确定最后一个间隔。其中重要的是X-协调, ,可能会带来厄运:

\documentclass[twocolumn, a4paper]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}

\begin{figure}
\begin{tikzpicture}
\begin{semilogxaxis}[xlabel=Number of Active Satellites, ylabel=Frequency]
\addplot[color=red, ybar interval]
plot coordinates {(5.5,856) (55,110) (550,14) (5500,122) 
                   (55000,0)};  % <--- dummy y vale, just determine last interwal width
\end{semilogxaxis}
\end{tikzpicture}
\caption{Number of active satellites controlled by operator}
\label{fig:satellitesbyoperatorhisto}
\end{figure}

\end{document}

在此处输入图片描述

相关内容