为世界地图着色

为世界地图着色

我正在尝试使用 tikz 在 latex/overleaf 上创建基于区域分类数据的世界地图图形,因此我希望所有属于东欧的国家/地区都具有相同的颜色,因为它们具有相同的变量值。该变量的范围从 0 到 100,有六个不同的值(代表六个区域)。这是我一直在使用的白色地图:https://gitlab.com/conradolandia/WorldMap-Tikz

到目前为止,我已经成功地将不同的值分配给各个国家,赋予它们不同的色调,但到目前为止,这些都是同一种颜色的不同色调,在我的情况下是橙色。我只是将一个国家在变量上的得分(例如 70)转换为颜色满意度(例如 70)。但是,为了更好的可视化,我希望颜色从橙色(满意度为 10)到紫色(满意度为 90)排序。有类似问题的人似乎正在使用 pgfplot,但由于我并没有尝试创建图表,所以我有点不知道如何处理分级以及如何添加图例刻度来解释颜色。我想知道 xcolors 是否可能是一个解决方案,但作为一个绝对的初学者,我不知道如何将它应用于我的问题。有什么想法吗?非常感谢您的帮助!

答案1

您可以使用颜色语法colorone!number!colortwo您可以xcolor 手册(见第 33 页的示例),在这种情况下fill=orange!#2!violet。这会导致颜色从紫色渐变为橙色。

或者,您可以定义颜色系列并设置步骤数(此处为 100),请参阅第 35 页。在这种情况下,您会得到各种不同的颜色。请注意,PGF/TikZ 不支持这些模型,下面的代码中使用了hsb一个模型。rgb

梅威瑟:

\documentclass[varwidth=2\linewidth]{standalone}
\usepackage{tikz}

\input{World}

\begin{document}

\begin{tikzpicture}
\tikzset{set state val/.style args={#1/#2}{#1={fill=orange!#2!violet}}}
\tikzset{set state val/.list={Greenland/0,Colombia/16,Canada/33,Russia/50,Brazil/66,Mexico/83.3,India/99}}
\WORLD[every state={draw=white, thick, fill=black!20}]
\end{tikzpicture}

\definecolorseries{countrycolors}{rgb}{step}[rgb]{.95,.85,.55}{.17,.47,.37}
\resetcolorseries[100]{countrycolors}
\begin{tikzpicture}
\tikzset{set state val/.style args={#1/#2}{#1={fill=countrycolors!![#2]}}}
\tikzset{set state val/.list={Greenland/0,Colombia/16,Canada/33,Russia/50,Brazil/66,Mexico/83.3,India/99}}
\WORLD[every state={draw=white, thick, fill=black!20}]
\end{tikzpicture}

\end{document}

结果:

在此处输入图片描述

相关内容