基本情节

基本情节

我浏览了使用 PSTricks 和 TikZ 绘制饼图和条形图的示例。它们对我来说看起来很复杂。有没有使用 PDFLaTeX 绘制这些图表的简单指南(博客/文本)。学习使用 gnuplot 对于我试图创建的小型演示文稿来说太难了!

答案1

pgfplots手册提供了大量信息和教程 - 您还可以在此网站上找到很多很棒的示例。

以下是我制作以下条形图的简单教程,我在回答时用到了它如何让密集的表格变得清晰、生动使用奇妙的pgfplots包;最后给出了完整的代码。

条状图

读取数据

第一个目标是读取数据 - 因为数据来自表格LaTeX,所以我们可以pgfplots用 来分隔列,&用 来分隔行\\很多其他读取数据的选项,例如逗号分隔值文件 (.csv)。

\pgfplotstableread[row sep=\\,col sep=&]{
    interval & carT & carD & carR \\
    0--2     & 1.2  & 0.1  & 0.2  \\
    2--5     & 12.8 & 3.8  & 4.9  \\
    5--10    & 15.5 & 10.4 & 13.4 \\
    10--20   & 14.0 & 17.3 & 22.2 \\
    20--50   & 7.9  & 21.1 & 27.0 \\
    50+      & 3.0  & 22.3 & 28.6 \\
    }\mydata

我们现在可以pgfplots使用 命令来访问它\mydata

基本情节

我们可以使用以下方法制作非常基本的条形图

\begin{tikzpicture}
    \begin{axis}[
            ybar,
            symbolic x coords={0--2,2--5,5--10,10--20,20--50,50+},
            xtick=data,
        ]
        \addplot table[x=interval,y=carT]{\mydata};
    \end{axis}
\end{tikzpicture}

这使

第一次尝试

请注意,我们必须告诉它使用象征性的 x coords这样它就知道使用interval横轴上列的值。

添加更多栏目

addplot我们可以使用更多命令轻松添加其他条形图

\begin{tikzpicture}
    \begin{axis}[
            ybar,
            symbolic x coords={0--2,2--5,5--10,10--20,20--50,50+},
        ]
        \addplot table[x=interval,y=carT]{\mydata};
        \addplot table[x=interval,y=carD]{\mydata};
        \addplot table[x=interval,y=carR]{\mydata};
    \end{axis}
\end{tikzpicture}

这使

更多酒吧

请注意,我们保留了x=interval已更改y=适合适当的列。

添加更多细节

我们可以分别使用nodes near coords和添加更多细节,例如每个条形顶部附近的编号和图例\legend

\begin{tikzpicture}
    \begin{axis}[
            ybar,
            symbolic x coords={0--2,2--5,5--10,10--20,20--50,50+},
            xtick=data,
            nodes near coords,
        ]
        \addplot table[x=interval,y=carT]{\mydata};
        \addplot table[x=interval,y=carD]{\mydata};
        \addplot table[x=interval,y=carR]{\mydata};
        \legend{Trips, Distance, Energy}
    \end{axis}
\end{tikzpicture}

这给出

坐标和图例附近的节点

最后的调整

它有点拥挤,所以让我们指定widthheight和查看窗口;我们还可以移动legend并为指定标签y-axis

\begin{tikzpicture}
    \begin{axis}[
            ybar,
            bar width=.5cm,
            width=\textwidth,
            height=.5\textwidth,
            legend style={at={(0.5,1)},
                anchor=north,legend columns=-1},
            symbolic x coords={0--2,2--5,5--10,10--20,20--50,50+},
            xtick=data,
            nodes near coords,
            nodes near coords align={vertical},
            ymin=0,ymax=35,
            ylabel={\%},
        ]
        \addplot table[x=interval,y=carT]{\mydata};
        \addplot table[x=interval,y=carD]{\mydata};
        \addplot table[x=interval,y=carR]{\mydata};
        \legend{Trips, Distance, Energy}
    \end{axis}
\end{tikzpicture}

结果如下

最后结果

您可以使用许多其他键来调整图表的外观和感觉 - 请浏览手册和此网站以获取更多信息。

完成 MWE

% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass[tikz]{standalone}

\usepackage{pgfplots}

\begin{document}

\pgfplotstableread[row sep=\\,col sep=&]{
    interval & carT & carD & carR \\
    0--2     & 1.2  & 0.1  & 0.2  \\
    2--5     & 12.8 & 3.8  & 4.9  \\
    5--10    & 15.5 & 10.4 & 13.4 \\
    10--20   & 14.0 & 17.3 & 22.2 \\
    20--50   & 7.9  & 21.1 & 27.0 \\
    50+      & 3.0  & 22.3 & 28.6 \\
    }\mydata

\begin{tikzpicture}
    \begin{axis}[
            ybar,
            bar width=.5cm,
            width=\textwidth,
            height=.5\textwidth,
            legend style={at={(0.5,1)},
                anchor=north,legend columns=-1},
            symbolic x coords={0--2,2--5,5--10,10--20,20--50,50+},
            xtick=data,
            nodes near coords,
            nodes near coords align={vertical},
            ymin=0,ymax=35,
            ylabel={\%},
        ]
        \addplot table[x=interval,y=carT]{\mydata};
        \addplot table[x=interval,y=carD]{\mydata};
        \addplot table[x=interval,y=carR]{\mydata};
        \legend{Trips, Distance, Energy}
    \end{axis}
\end{tikzpicture}
\end{document}

答案2

PGF 有一个很棒的网站,其中有很多示例和解释(请查看网站底部)。这里. TEXample 是一个包含结构化示例的页面。这里。PSTricks 有一个包含示例和 2D/3D 图库的页面。这里. 也http://tex.stackexchange.com你可以找到很多参考资料。使用搜索功能和关键词。

相关内容