pgfplot 柱形图图例形状

pgfplot 柱形图图例形状

我在 Latex 中使用 gpfplot 编写了以下代码。生成的图形中的图例始终看起来像所附的图像。每个条目有两个框而不是一个。为什么会发生这种情况?我如何修改图例,以便每个条目只有一个框。

(此外,如何使 y 轴显示实际值而不是 3*10^6)

我好像无法发布图片。因此图例如下所示:[box1_blue] [box2_blue] entry1 [box1_red] [box2_red] entry2

\begin{tikzpicture}
\begin{axis}[
    ybar,
    tick label style={font=\small},
    tickpos=left,
    xticklabels={double, 20 digits,7 digits, 6 digits, 5 digits}, 
    xtick={1,2,3,4,5},
    ymin=0,
    legend entries={entry1,entry2}
    ]
    \addplot +[bar shift=-.2cm] coordinates {(1,3103533) (2,571651) (3,240729) (4,218595)     (5,207303)};

    \addplot  +[bar shift=.2cm]coordinates {(1,519042) (2,86885) (3,46461) (4,44745) (5,43960)};

\end{axis}
\end{tikzpicture}

答案1

更改图例的另一种方法是area legend使用\addplot

要调整 y 刻度标签样式,您可以使用y tick label style如下所示的方法:

在此处输入图片描述

如果你注释掉该fixed设置,则会得到 y 刻度的科学计数法:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{pgfplots}

\begin{document} 
\begin{tikzpicture}
\begin{axis}[
    ybar,
    tick label style={font=\small},
    tickpos=left,
    xticklabels={double, 20 digits,7 digits, 6 digits, 5 digits}, 
    xtick={1,2,3,4,5},
    ymin=0,
    legend entries={entry1,entry2},
    y tick label style={/pgf/number format/.cd,%
          scaled y ticks = false,
          set thousands separator={},
          fixed
    },
    ]
    \addplot +[bar shift=-.2cm, area legend] coordinates {(1,3103533) (2,571651) (3,240729) (4,218595)     (5,207303)};

    \addplot  +[bar shift=.2cm, area legend]coordinates {(1,519042) (2,86885) (3,46461) (4,44745) (5,43960)};
\end{axis}
\end{tikzpicture}
\end{document}

答案2

尝试这个:

\documentclass{standalone}

\usepackage{tikz, pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    ybar,
    tick label style={font=\small},
    tickpos=left,
    xticklabels={double, 20 digits,7 digits, 6 digits, 5 digits}, 
    xtick={1,2,3,4,5},
    ymin=0,
    legend entries={entry1,entry2},
    legend image code/.code={%
      \draw[#1] (0cm,-0.1cm) rectangle (0.6cm,0.1cm);
    }   
    ]   
    \addplot +[bar shift=-.2cm] coordinates {(1,3103533) (2,571651) (3,240729)  (4,218595)     (5,207303)};

    \addplot  +[bar shift=.2cm]coordinates {(1,519042) (2,86885) (3,46461) (4,  44745) (5,43960)};

\end{axis}
\end{tikzpicture}

\end{document}

我在这里添加了legend image code键来修改条形图的默认键。尝试调整矩形的尺寸以获得所需的效果。

在此处输入图片描述

请参考以下问题来更改 x/y 刻度标签格式:

  1. pgfplot 在刻度上有固定的小数位

  2. 如何更改 pgfplots 上数字轴的格式

相关内容