根据@cmhughes 的建议进行更新

根据@cmhughes 的建议进行更新

我使用 创建了一个图例,并pgfplots在其中添加了图例。但是,我发现图例中的标记大小与主图中使用的标记大小相同。我认为这有点分散注意力,我通常希望图例中的标记比主图中的标记略小。(同样,图例文本也比标签小)。

手册说图例是作为 TikZ 矩阵实现的;但是,我不知道如何有选择地更改标记符号大小。我当前在代码中确定图例样式的行是:

legend style={draw=black,rounded corners=3pt,thin,at={(0.03,0.97)},anchor=north west}

我对这些选项所做的任何更改都只会影响外部框。修改该行以

legend style={draw=black,rounded corners=3pt,thin,at={(0.03,0.97)},anchor=north west, 
                 font=\small}

仅改变图例本身的文本字体。

有没有办法可以单独选择性地更改图例中的标记大小?

在一个相关的问题中,如果我用一个小矩形标记一个特定的点(使用绘制命令),然后想在图例中包含该矩形来描述该标记的含义,那么该怎么做?

根据@cmhughes 的建议进行更新

修改后的 MWE 如下:

\documentclass{standalone}
\usepackage{pgfplots, amsmath, amssymb}
\pgfplotsset{width=7cm, compat=newest}
\pgfplotsset{every axis/.append style={
                    legend style={font=\tiny,line width=5pt,mark size=10pt},
                    }}
\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            xmode =                             log,
            ymode =                             log,
            xlabel =                            {A},
            ylabel =                            {B},
            ]
            \addplot[
                color =                             red,
                mark =                              x,
                mark size =                         2,
                only marks,
            ] 
            coordinates 
            {
                (2,2.8559703)
                (30,30.5301677)
                (400,400.3050655)
                (5000,5000.1413136)
                (60000,60000.0322865)
            };
            \addlegendentry{some data}
        \end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

我再次检查了代码,并将问题归咎于选项addplot[mark size = 2]。注释掉此行只会更改图例中的标记大小(标记大小、线宽已夸大以便说明):

在此处输入图片描述

但我希望可以根据自己的需要选择更改图中的标记大小,并独立缩小所有图例标记大小。

答案1

正如@Jake 所演示的那样pgfplots:多个 y 轴图中的图例重叠\addlegendimage{<plot options>}你可以在情节之前使用。

例如

\addlegendimage{red,dashed};
\addlegendentry{Different!};
\addplot[blue,thick]{x^2}; 

给出

截屏

平均能量损失

\documentclass{standalone}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
    \begin{axis}
        \addlegendimage{red,dashed};
        \addlegendentry{Different!};
        \addplot[blue,thick]{x^2}; 
    \end{axis}
\end{tikzpicture}
\end{document}

根据评论进行更新

如果你想要一个全局性的改变,那么也许可以这样做

\pgfplotsset{every axis/.append style={
                    legend style={font=\tiny,line width=.5pt,mark size=.6pt},
                    }}

将是合适的。

截屏

或者,最后,感谢大师@Jake,你可以尝试

\pgfplotsset{every axis/.append style={
        legend style={ font=\tiny, mark options={scale=0.5} }, }

相关内容