Wolfram mathematica Mathematica中choropleth映射的最小示例是什么?

Wolfram mathematica Mathematica中choropleth映射的最小示例是什么?,wolfram-mathematica,geospatial,Wolfram Mathematica,Geospatial,Mathematica中地图的最小示例是什么 我可以使用Import读取ESRI形状文件,但不知道如何处理导入的结果 Graphics[ { ColorData["ThermometerColors"][ Rescale[CountryData[#, "GDPPerCapita"], {100, 50000}] ] /. HoldPattern[Blend[_

Mathematica中地图的最小示例是什么

我可以使用
Import
读取ESRI形状文件,但不知道如何处理导入的结果

Graphics[
   {
    ColorData["ThermometerColors"][
                            Rescale[CountryData[#, "GDPPerCapita"], {100, 50000}]
                                  ] /. HoldPattern[Blend[___]] -> Yellow, 
    CountryData[#, "Polygon"]
   } & /@
   CountryData[]
]

为什么要更换?如果给定国家/地区没有所需类型的数据,CountryData返回Missing[“NotAvailable”],导致
ColorData
,其基础
Blend
函数不返回特定的RGB值。我用黄色替换了这个未经评估的
混合体。

从某种意义上说,这是一个极小的变化:


以下是一些使用ESRI Shapefile的提示,仅供参考
CountryData
不提供德国的县级数据(管理单元称为“Kreis”),这就是我编写自己的
kreidata
函数的原因。我使用的形状文件可以,但是有使用的术语要考虑。

然后创建
kreidata
函数,如下所示:

shp = Import["C:/TEMP/map/VG2500/vg2500_krs.shp", "Data"];
polys = "Geometry" /. First[shp];
ags = "RS" /. ("LabeledData" /. First[shp]);
names = "GEN" /. ("LabeledData" /. First[shp]);
area = "SHAPE_AREA" /. ("LabeledData" /. First[shp]);
KreisDataRules = 
  Dispatch[MapThread[
    Rule[#1, #2] &, {ags, Transpose[{polys, area, names}]}]];
KreisData[tag_String, "Polygon"] := First[tag /. KreisDataRules];
KreisData[tag_String, "Area"] := Part[tag /. KreisDataRules, 2];
KreisData[tag_String, "Name"] := Last[tag /. KreisDataRules];
KreisData[] := ags;
利用此功能和Sjoerd C.de Vries的示例代码,可以创建德国地图:

renderMap[scheme_String] :=
  Graphics[{ColorData[scheme][
        Rescale[KreisData[#, "Area"], {3.63067036816521*10^7, 
          3.08469540395003*10^9}]] /. 
       HoldPattern[Blend[___]] -> Yellow, KreisData[#, "Polygon"]} & /@
     KreisData[]];
Manipulate[renderMap[s], {s, ColorData["Gradients"]}]

因为我无法抗拒与贝里萨利斯的代码高尔夫比赛:

Graphics[{Hue[i~#~"Area"/10^7],i~#~"Polygon"}~Table~{i,#[]}&@CountryData]

(对于相同的结果)

@Karsten W:不幸的是,您的shp文件不再可用。我从同一个源尝试了一个类似的方法(vg250_0101.utm32s.shape.ebenen\vg250_ebenen\vg250_krs.shp),但从函数KreisDataRules中得到了错误消息“转置:前两个级别无法转置”。既然我真的不明白你的代码是做什么的,也许你可以帮我。 我试着制作一张克雷斯层面的主题地图,在地图上的颜色显示了我们城市的游客数量,如果有必要的话,也可以是0。
我将非常感谢您的帮助。

在午餐时间游乐场发表的《Mathematica的乐趣》中,关于如何使用Mathematica制作美国县主题地图的帖子可能会引起兴趣?很好的链接,Tom。这是另一个,@Karsten:Michael Shreiber的演示,[“颜色编码的国家比较”][1][1]:很好的例子,有趣地使用了颜色数据和重新缩放。谢谢嗨,欢迎来到Stackoverflow!!如果你能在回答任何问题之前回答,那就太好了。谢谢。嗨,沃尔克,使用stackoverflow的方法是把这个问题写成一个新问题,并链接到这个问题。但是,为了帮助您,我需要一个指向您要使用的形状文件的链接。@KarstenW:非常感谢您的提议,但是我能够使用您的一些代码元素解决我的问题。然而,我将打开一个关于以下步骤的新问题:使用这些图形对象作为地理对象,以便使用Mathematica的函数,如GeoRegionPlot、GeobuleChart等。
Graphics[{Hue[i~#~"Area"/10^7],i~#~"Polygon"}~Table~{i,#[]}&@CountryData]