条形图不起作用

条形图不起作用

我的代码创建了一个条形图,但条形非常细且相距很远。另外,我想在每个条形下分别添加标签(“比特币”和“VISA”),但这对我来说也不起作用……

有人能帮忙吗?非常感谢您的帮助。 在此处输入图片描述

\documentclass[border=5mm]{standalone}
\usepackage{filecontents}
\begin{filecontents*}{cfets.csv}
column1 column2
8  1005
14 169
\end{filecontents*}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\begin{document}
\begin{tikzpicture}
      \begin{axis}[
           ybar,
            bar width=.4cm,
            enlarge x limits={abs=.4cm},
            xtick=data,
            x tick label style={color=white},
            nodes near coords,
            nodes near coords align={vertical},
            ymin=0,ymax=1200,
            ylabel={Energy consumption in kilowatt-hours},
        ]
        \addplot table[x expr=\coordindex,y=column2] {cfets.csv}; 

      \end{axis}
    \end{tikzpicture}
\end{document}

答案1

欢迎使用 TeX.SE!例如,您可以使用x=1.1cmaxis选项中使用来确定X矢量。这将使这里的条形图彼此更接近,并减少绘图宽度(在您的代码中,pgfplots确定X单位以获得\axisdefaultwidth宽和\axisdefaultheight高的图,这些默认值分别为 240 和 207 点,这给出了用 制作的图的惯用矩形框pgfplots

对于您的比特币和 VISA 标签,我的建议是将它们包含在您的数据中,例如像这样:

column1  column2
Bitcoin  1005
VISA     169

symbolic x coords={Bitcoin,VISA}并与 一起使用\addplot table[x=column1, y=column2] {cfets.csv};

我也small用过axis来减小字体大小——现在条形图不再那么宽,也不再那么紧密;我们不想X标签相互接触。我建议设置最近的pgfplots兼容级别,如\pgfplotsset{compat=1.16}

最后,请注意filecontents软件包已过时,不适合最新的 LaTeX。因此,不再需要了\usepackage{filecontents}

\begin{filecontents*}{cfets.csv}
column1  column2
Bitcoin  1005
VISA     169
\end{filecontents*}

\documentclass[tikz, border=2mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    small,
    ybar,
    x=1.1cm, bar width=.6cm,
    enlarge x limits={abs=.4cm},
    symbolic x coords={Bitcoin,VISA},
    xtick=data,
    nodes near coords, nodes near coords align={vertical},
    ymin=0, ymax=1200,
    ylabel={Energy consumption in kilowatt-hours},
    ]
    \addplot table[x=column1, y=column2] {cfets.csv};
  \end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容