将折线图数据与条形图以及 pgfplotstable 结合起来

将折线图数据与条形图以及 pgfplotstable 结合起来

我尝试创建一个组合的折线图和条形图,并在问题中找到了解决方案将折线图数据与条形图相结合

但是我在将两个图表与 pgfplotstable 包定义的表中的数据结合起来时遇到了问题。

我的 MWE:

\documentclass[border=3mm]{standalone}
\usepackage{pgfplots, pgfplotstable}

\pgfplotstableread[col sep=&, header=true]{
firm  &value&value2
Firm 1&3    &4
Firm 2&7    &8
Firm 3&8    &9
Firm 4&13   &14
Firm 5&16   &17
}\mydata

\begin{document}
    \begin{tikzpicture}
\begin{axis}[
   xtick=data,
   xticklabels from table={\mydata}{firm},      
   bar width=7mm, y=4mm,
    nodes near coords align={vertical},
  ]
\addplot table [ybar, y=value, x expr=\coordindex,] {\mydata};  %Works not
\addplot table [y=value2, x expr=\coordindex] {\mydata}; %Works
\end{axis}
    \end{tikzpicture}
\end{document}

我的结果: 在此处输入图片描述

我的示例中忽略了第一个图的 ybar 参数。

我的例子有错误吗或者\addplot table不支持ybar?

答案1

ybar选项是一个绘图选项,而不是表格解析选项。

应该传递给\addplot,而不是table

代码

在此处输入图片描述

代码

\documentclass[border=3mm]{standalone}
\usepackage{pgfplots, pgfplotstable}

\pgfplotstableread[col sep=&, header=true]{
  firm  &value&value2
  Firm 1&3    &4
  Firm 2&7    &8
  Firm 3&8    &9
  Firm 4&13   &14
  Firm 5&16   &17
}\mydata

\begin{document}
  \begin{tikzpicture}
    \begin{axis}
      [
        xtick=data,
        xticklabels from table={\mydata}{firm},      
        bar width=7mm, y=4mm,
        nodes near coords align={vertical},
      ]
      \addplot [ybar] table [y=value, x expr=\coordindex,] {\mydata};  % now works 
      \addplot table [y=value2, x expr=\coordindex] {\mydata}; %Works
    \end{axis}
  \end{tikzpicture}
\end{document}

相关内容