图例未显示在条形图中

图例未显示在条形图中

我有一个条形图,其中一些数据集不包含所有 x 坐标的点。

我有两个问题:

  1. 图例标签不显示
  2. 图例中的符号是双杠。这是为什么?它不应该是单杠吗?

另外,由于图表内部(西北角)有很多空白空间,我可以将图例放在那里吗?

谢谢

\documentclass[preprint,1p,times]{elsarticle}

\usepackage{pgfplots}

\pgfplotsset{height=6cm, compat=1.9}

\begin{document}

\newcommand \SingleName {Single}
\newcommand \DoubleName {Double}
\newcommand \ScalarName {Scalar}
\newcommand \SSEName {SSE}
\newcommand \AVXName {AVX} 

\newcommand \MorinOffsetName {Khuong Offset}
\newcommand \MorinBranchyName {Khuong Branchy}
\newcommand \LowerBoundName{lower\_bound}
\newcommand \BitSetNoPadName{Lead Bit No Pad}
\newcommand \ClassicModName{Classic Mod}

\newcommand \ClassicName {Classic}
\newcommand \ClassicColor {magenta}
\newcommand \ClassicMark {*}
\newcommand \ClassicStyle {solid}

\newcommand \ClassicOffsetName {Offset}
\newcommand \ClassicOffsetColor {green}
\newcommand \ClassicOffsetMark {*}
\newcommand \ClassicOffsetStyle {solid}

\newcommand \BitSetName {Lead Bit}
\newcommand \BitSetColor {green}
\newcommand \BitSetMark {*}
\newcommand \BitSetStyle {solid}

\newcommand \EytzingerName {Eytzinger}
\newcommand \EytzingerColor {blue}
\newcommand \EytzingerMark {*}
\newcommand \EytzingerStyle {solid}

\pgfplotsset{every axis/.append style={
    font=\small,
        line width=0.6pt,
        }}


\begin{figure}[ht]
\begin{tikzpicture}
\begin{axis}[
    width  = 0.85\textwidth,
    height = 5cm,
    major x tick style = transparent,
    ybar=2.5*\pgflinewidth,
    bar width=2.5pt,
    ymajorgrids = true,
    ylabel = {Throughput},
    ytick={0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600},
    symbolic x coords={\ClassicName,\LowerBoundName,\MorinBranchyName,\MorinOffsetName, \ClassicModName,\ClassicOffsetName,\BitSetName,\EytzingerName},
    xtick = data,
    xticklabel style={rotate=45, anchor=east},
    scaled y ticks = false,
    enlarge x limits=0.08,
    ymin=0,
    legend pos=outer north east,
]

  \addplot[style={red,fill=red,mark=none}]
coordinates {(\EytzingerName,170.465) (\BitSetName,199.79) (\ClassicOffsetName,184.861) (\MorinOffsetName,146.236) (\MorinBranchyName,64.4379) (\ClassicName,53.0333) (\LowerBoundName,62.4723) (\ClassicModName,152.575) };
\addplot[style={orange,fill=orange,mark=none}]
coordinates {(\EytzingerName,171.929) (\BitSetName,199.421) (\ClassicOffsetName,187.638) (\MorinOffsetName,147.191) (\MorinBranchyName,63.5857) (\ClassicName,50.8408) (\LowerBoundName,63.7888) (\ClassicModName,153.149) };
\addplot[style={blue,fill=blue,mark=none}]
coordinates {(\EytzingerName,381.08) (\BitSetName,383.956) (\ClassicOffsetName,379.795) (\ClassicModName,244.268) };
\addplot[style={cyan,fill=cyan,mark=none}]
coordinates {(\EytzingerName,260.645) (\BitSetName,263.8) (\ClassicOffsetName,254.917) (\ClassicModName,151.602) };
\addplot[style={green,fill=green,mark=none}]
coordinates {(\EytzingerName,385.152) (\BitSetName,386.348) (\ClassicOffsetName,381.327) (\ClassicModName,253.413) };

\addplot[style={yellow,fill=yellow,mark=none}]
    coordinates {(\EytzingerName,264.892) (\BitSetName,216.624) (\ClassicOffsetName,214.466) (\ClassicModName,138.059) };

 \legend={\SingleName-\ScalarName,\DoubleName-\ScalarName,\SingleName-\SSEName,\DoubleName-\SSEName,\SingleName-\AVXName,\DoubleName-\AVXName}
 %   \legend={a,b,c,d,e,f}
\end{axis}

\end{tikzpicture}
\vspace*{-5mm}
\caption{Throughput in millions of searches per second with array X of size $N=15$ and array $Z$ of size $M=2048$ randomly generated}
\label{fig:selectbinary}
\end{figure}

\end{document}

在此处输入图片描述

相关内容