Wolfram mathematica 北美地图
如何在Mathematica中渲染这样的贴图?(例如,美国各州和加拿大省份的一个可单独着色?) 我尝试导入SVG路径并构建多边形(使用基于的方法),但它们看起来比链接的SVG中的曲线要差得多。内置数据库似乎没有针对美国各州和加拿大省份的形状:只有国家 谢谢Wolfram mathematica 北美地图,wolfram-mathematica,mapping,visualization,gis,Wolfram Mathematica,Mapping,Visualization,Gis,如何在Mathematica中渲染这样的贴图?(例如,美国各州和加拿大省份的一个可单独着色?) 我尝试导入SVG路径并构建多边形(使用基于的方法),但它们看起来比链接的SVG中的曲线要差得多。内置数据库似乎没有针对美国各州和加拿大省份的形状:只有国家 谢谢 PS:其目的是能够为州/省数据制作choropleth地图(即根据与该州/省相关的一些数据为州/省上色)对现有地图图像进行一些图像处理怎么样?这只是一个原型工作流。在Mathematica中集成了Wolfram]Alpha和图像处理的数据,有
PS:其目的是能够为州/省数据制作choropleth地图(即根据与该州/省相关的一些数据为州/省上色)对现有地图图像进行一些图像处理怎么样?这只是一个原型工作流。在Mathematica中集成了Wolfram]Alpha和图像处理的数据,有很多事情需要探索。你可以更详细地播放这些。我并没有真正尝试使用人口数据并相应地给地图上色,但我认为这是可能的。函数形态学组件[…]检测并索引边界之间的状态区域
map = WolframAlpha["Illinois", {{"Location:USStateData", 1}, "Image"}]
您可以使用.kml或.kmz文件获取州/省及其轮廓多边形的列表。例如,对于美国,您可以使用。要提取多边形,可以执行以下操作
usa = Import["http://code.google.com/apis/kml/documentation/us_states.kml",
"Data"];
transform[s_] := StringTrim[s, Whitespace ~~ "(" ~~ ___ ~~ ")"]
polygons = Thread[transform["PlacemarkNames" /. usa[[1]]] ->
("Geometry" /. usa[[1]])];
stateNames = polygons[[All, 1]];
然后多边形将是一个包含元素的列表“state name”->多边形[点]
。函数transform
只是一个辅助函数,用于以所需格式从.kml文件中获取地名(在本例中,从名称末尾剥离“(年)”
使用这些多边形,然后可以使用FaceForm[]
为各个多边形着色。假设我们有一个格式为“state”->value
的数据列表,例如
data = Thread[regionNames -> RandomReal[{0, 1}, Length[regionNames]]];
然后我们可以根据
colourf = ColorData["Temperature"];
element[value_, poly_] := GraphicsGroup[{EdgeForm[Black], FaceForm[colourf[value]], poly}]
Graphics[{element @@@ Transpose[regionNames /. {data, polygons}]}]
看起来像
另一个概述各州的选项从使用地理功能开始:
GeoGraphics[
{
EdgeForm[Black],
Polygon[CountryData["UnitedStates", "AdministrativeDivisions"]]
}
GeoBackground -> None,
GeoProjection -> "Mercator"
]
相关:。哇,这太好了!我真的希望有一个工作流,我可以扩展到制作choropleth地图(例如,通过颜色显示州/省数据),这将很难用这种方法…@nicolaskruchten您可能会发现一些有用的信息。谢谢!我已经看到了,但我需要的是一张北美地图,上面标明了州/省。这在内置数据库中不可用,我没有任何形状文件,只有SVG文件。
data = Thread[regionNames -> RandomReal[{0, 1}, Length[regionNames]]];
colourf = ColorData["Temperature"];
element[value_, poly_] := GraphicsGroup[{EdgeForm[Black], FaceForm[colourf[value]], poly}]
Graphics[{element @@@ Transpose[regionNames /. {data, polygons}]}]
GeoGraphics[
{
EdgeForm[Black],
Polygon[CountryData["UnitedStates", "AdministrativeDivisions"]]
}
GeoBackground -> None,
GeoProjection -> "Mercator"
]