Jaki byłby minimalny przykład dla mapy choropleth w języku Mathematica?Jaki byłby minimalny przykład dla mapy choropleth w Mathematica?
Mogę odczytać w pliku kształtu ESRI przy użyciu Import
, ale nie wiem, jak pracować z zaimportowanym wynikiem.
Jaki byłby minimalny przykład dla mapy choropleth w języku Mathematica?Jaki byłby minimalny przykład dla mapy choropleth w Mathematica?
Mogę odczytać w pliku kształtu ESRI przy użyciu Import
, ale nie wiem, jak pracować z zaimportowanym wynikiem.
Graphics[
{
ColorData["ThermometerColors"][
Rescale[CountryData[#, "GDPPerCapita"], {100, 50000}]
] /. HoldPattern[Blend[___]] -> Yellow,
CountryData[#, "Polygon"]
} & /@
CountryData[]
]
I dlaczego wymiana? Jeśli nie ma danych o wymaganym typie dla danego kraju, parametr CountryData zwraca wartość Missing ["NotAvailable"], powodując, że ColorData
i jego podstawowa funkcja Blend
nie zwracają określonej wartości RGB. Zastępuję ten nieoceniony Blend
kolorem żółtym.
Dobry przykład, ciekawe wykorzystanie ColorData i Rescale . Dzięki! –
wow! To miłe –
Rzut na Minimal w code golf sensie:
[email protected][f,{Hue[f[#,"Area"]/10^7],f[#,"Polygon"]} &/@ f[]]@CountryData
tylko w celach informacyjnych, oto kilka wskazówek do pracy z ESRI Shapefiles. CountryData
nie dostarcza danych na poziomie powiatu dla Niemiec (jednostka administracyjna nazywa się "Kreis"), dlatego napisałem własną funkcję KreisData
. Plik kształtu, którego używałem, może być downloaded for free, ale należy wziąć pod uwagę warunki użytkowania.
Funkcja KreisData
zostaje utworzony w następujący sposób:
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;
Dzięki tej funkcji, a kod przykład Sjoerd C. de Vries, mapa Niemiec jest utworzony w sposób następujący:
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"]}]
Ponieważ nie mogę oprzeć się konkurencji Code Golf z belisarius:
Graphics[{Hue[i~#~"Area"/10^7],i~#~"Polygon"}~Table~{i,#[]}&@CountryData]
(na ten sam rezultat)
[to] (http://mathgis.blogspot.com/2009/11/make-us-county-thematic-map-using.html) bieguna z _LunchTime Plac zabaw, zabawa z Mathematica, na ** Jak stworzyć mapę tematyczną powiatu w USA z Mathematica ** może zainteresować? – tomd
Niezły link, Tom. Oto kolejna, demo @Karsten: Michael Shreiber, ["Porównanie krajów z kolorami"] [1] [1]: http://demonstrations.wolfram.com/ColorcodedCountryComparison/ – DavidC