如何在 pgfplot tikz 中创建棋盘格瓷砖图案

如何在 pgfplot tikz 中创建棋盘格瓷砖图案

我知道 tikz 图案中有几种可用的图案,例如vertical linescrosshatch和等。但是,我需要创建一些类似于棋盘图案的平铺图案才能填充条形图。我想知道如何创建这样的图案并将其像其他可用图案一样简单地用于我的绘图中?

值得注意的是,现有checkerboard图案不是矢量,因此缩放后会失去质量。

\documentclass{standalone}
    \usepackage{pgfplots}
    \usepgfplotslibrary{groupplots}
    \usetikzlibrary{patterns}

    \begin{document}

        \definecolor{bblu}{HTML}{4F81BD}
        \definecolor{rred}{HTML}{C0504D}
        \definecolor{ggre}{HTML}{9BBB59}
        \definecolor{ppur}{HTML}{9F4C7C}
        \begin{tikzpicture}
            \begin{axis}[
                width  = 0.95*\textwidth,
                height = 8cm,
                major x tick style = transparent,
                ybar=2*\pgflinewidth,
                ymode=log,
                bar width=6pt,
                ylabel = {Running time (Minute)},
                symbolic x coords={Data 1,Data 2,Data 3},
                xtick = data,
                scaled y ticks = false,
                enlarge x limits=0.1,
                ylabel style={at={(0.04,0.5)}},
                x tick label style = {rotate=45},
                ymin=1,
                ymax=1500,
                legend cell align=left,
                legend style={
                        at={(.2,.75)},
                        anchor=south east,
                        column sep=.1ex,
                        nodes={scale=0.6, transform shape},
                }
            ]

                \addplot
                [area legend, style={cyan,fill=cyan,mark=none}]
                    coordinates {(Data 1, 22) (Data 2, 22) (Data 3, 22)};

                \addplot
                [area legend, style={rred,fill=rred,mark=none, pattern=checkerboard, pattern color=rred}]
                    coordinates {(Data 1, 22) (Data 2, 22) (Data 3, 22)};

                \addplot
                [area legend, style={ggre,fill=ggre,mark=none, pattern=vertical lines, pattern color=ggre}]
                    coordinates {(Data 1, 0.1) (Data 2, 0.1) (Data 3, 0.1)};

                \legend{Alg 1,Alg 2,Alg 3}
            \end{axis}
        \end{tikzpicture}

    \end{document}

这是缩放后得到的结果:

在此处输入图片描述

相关内容