使用 pgfplots 从 csv 文件绘制非数字数据

使用 pgfplots 从 csv 文件绘制非数字数据

因此,我尝试使用 pgfplots 绘制 csv 文件。csv 文件如下所示,但包含更多数据:

csv 文件

以下是 csv 的下载链接:https://datawrapper.dwcdn.net/NDCZf/4/

我尝试使用这篇文章中的代码pgfplot:绘制 CSV 文件中的非数字数据。但我最终得到的结果是这样的:

结果

以下是代码:


\documentclass[ngerman]{scrbook}
\usepackage[utf8]{inputenc}

\input{../shared/twp-cfg}


\begin{document}

\pgfplotstableread[col sep=comma]{../shared/data.csv}\datatable
\begin{tikzpicture}
    \begin{axis}[
        ybar,
        xtick=data,
        xticklabels from table={\datatable}{X},
        xticklabel style={rotate=90,anchor=base,yshift=0.82cm},
    ]
    \addplot table [col sep=comma, x expr=\coordindex, y=Terawatt-Hours(TWh)] {../shared/data.csv};
    \end{axis}
\end{tikzpicture}


\end{document}

有没有办法解决这个问题并使图更宽?我是 LaTeX 新手,所以欢迎任何帮助。谢谢。

答案1

这个例子将帮助你入门。

A

\documentclass[12pt,a4paper]{article}
 
 \usepackage{tikz}
 \usepackage{pgfplots}
 \pgfplotsset{width=10cm,compat=1.9}
 \usetikzlibrary{dateplot}
 
\begin{filecontents*}[overwrite]{TRW.dat}
        date,  TRW
    2010-11-01, 0.2
    2010-12-01, 1
    2011-01-01, 2
    2011-02-01, 5
    2011-03-01, 9
    2011-04-01, 15
    2011-05-01, 9
    2011-06-01, 10
    2011-07-01, 10.5
    2011-08-01, 14
\end{filecontents*}

\begin{document}

    \begin{tikzpicture}
    \begin{axis}[
        date coordinates in=x,
        ybar,
        xtick=data,
        xticklabel style= {rotate=90,anchor=near xticklabel},
        xticklabel=\month --\year,
        title={Energy Consumption},
        xlabel={Date},
        ylabel={Monthly, in terawatt-hours (TWh)},
        ]
        \addplot table[col sep=comma,x=date,y=TRW] {TRW.dat};
    \end{axis}
\end{tikzpicture}

\end{document}

相关内容