pgfplots 来自文件的分组条形图

pgfplots 来自文件的分组条形图

我正在尝试使用 pgfplots 从包含数据表的文件中创建分组条形图。但是在生成的图片中,条形图并未分组,而是相互叠放。

我在文档、stackoverflow 或 google 中找到的每个使用 pgfplots 分组条形图的工作示例都包含 tex 文件本身中的坐标(这些示例对我来说也有效)。

条形图应成对出现,每个 值对应一对rounds。每对的第一条条形图应为 的对应值RRS。每对的第二条条形图应为 的对应值QRC

我的 tex 文件

\documentclass[a4paper,10pt]{article}

\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{pgfplots}

\pgfplotsset{compat=1.8}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[ybar]
    \pgfplotstableread{frequency_comparison_23.dat}\loadedtable;

    \addplot table[x=rounds, y=RRS] {\loadedtable};
    \addplot table[x=rounds, y=QRC] {\loadedtable};    
  \end{axis}
\end{tikzpicture}
\end{document}

以及表“frequency_comparison_23.dat”

vertices rounds RRS QRC
8388608 37 47 727
8388608 38 5731 15709
8388608 39 29072 35103
8388608 40 33027 26904
8388608 41 18914 13062
8388608 42 8141 5291
8388608 43 3177 1999
8388608 44 1179 766
8388608 45 435 273
8388608 46 175 104
8388608 47 59 43
8388608 48 26 11
8388608 49 9 5
8388608 50 6 3
8388608 51 1 0
8388608 52 1 0

答案1

您使用的是默认bar width选项,它们往往会重叠。如果您调整bar width或绘图的宽度,它就会起作用。

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{pgfplots}

\pgfplotsset{compat=1.8}

    \pgfplotstableread{
vertices rounds RRS QRC
8388608 37 47 727
8388608 38 5731 15709
8388608 39 29072 35103
8388608 40 33027 26904
8388608 41 18914 13062
8388608 42 8141 5291
8388608 43 3177 1999
8388608 44 1179 766
8388608 45 435 273
8388608 46 175 104
8388608 47 59 43
8388608 48 26 11
8388608 49 9 5
8388608 50 6 3
8388608 51 1 0
8388608 52 1 0
}\loadedtable;


\begin{document}
\begin{tikzpicture}
  \begin{axis}[ybar,bar width=2pt]
    \addplot table[x=rounds, y=RRS] {\loadedtable};
    \addplot table[x=rounds, y=QRC] {\loadedtable};    
  \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容