pgfplots:补丁图,改变各个矩形的颜色

pgfplots:补丁图,改变各个矩形的颜色

更新:后续问题这里


  • 我想创建一个“拼凑”图pgfplots
  • 我使用patch plots,参见“第 4.6.13 章 Patch Plots”。
  • 我愿意不是具有 3D 绘图(冲浪、网格等)经验。
  • 问题:我想为矩形分配自定义颜色,可以吗?
  • point meta或者,当我coordinates在 MWE 中使用 like时,如何影响颜色( )?

背景:我想给较大的矩形赋予比小矩形更“重要”的颜色,类似于(不相同)的可视化 https://windirstat.net/或者http://kdirstat.sourceforge.net/(看 截屏)。


\documentclass{article}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
    title = Just a Title,
    xmin = 0,
    xmax = 100,
    colormap/blackwhite, % Just for testing
]
\addplot [
    patch,
    patch type = rectangle,
    ] coordinates {
        (0,0) (30,0) (30,12) (0,12)
        (0,12) (30,12) (30,18) (0,18)
        (30,0) (50,0) (50,12) (30,12)
        (30,12) (50,12) (50,18) (30,18)
    };
\end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案1

您可以使用该patchplots库。这或多或少是第 472 页的示例,适合您的用例。

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{patchplots}
\pgfplotsset{compat=1.17}
\begin{document}

\begin{tikzpicture}
\begin{axis}[view={0}{90},
    title = Just a Title]
\addplot [table/row sep=\\,
    patch,
    patch type=polygon,
    vertex count=4,
    patch table with point meta={
            % pt1 pt2 pt3 pt4 cdata
            0 1 2 3 2\\
            2 3 5 4 1.5\\
            1 6 7 2 3\\
            2 7 8 4 4\\},
    ] table {
        x y z\\
        0 0 0\\%0
        30 0 0\\%1
        30 12 0\\%2
        0 12 0\\%3
        30 18 0\\%4
        0 18 0\\%5
        50 0 0\\%6
        50 12 0\\%7
        50 18 0\\%8
    };
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

以上代码从默认颜色图(即)中获取颜色hot。您可以定义自己的颜色,以便知道每种颜色是什么。

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{patchplots}
\pgfplotsset{compat=1.17}
\begin{document}

\begin{tikzpicture}
\begin{axis}[
    title = Just a Title]
\addplot [table/row sep=\\,
    patch,
    patch type=polygon,
    vertex count=4,
    colormap={custom}{
        color(1)=(blue)
        color(2)=(green)
        color(3)=(orange)
        color(4)=(red)
    },
    patch table with point meta={
            % pt1 pt2 pt3 pt4 cdata
            0 1 2 3 1\\
            2 3 5 4 2\\
            1 6 7 2 3\\
            2 7 8 4 4\\},
    ] table {
        x y\\
        0 0\\%0
        30 0\\%1
        30 12\\%2
        0 12\\%3
        30 18\\%4
        0 18\\%5
        50 0\\%6
        50 12\\%7
        50 18\\%8
    };
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容