{
"info": {
"author": "Benny Chin",
"author_email": "wcchin.88@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Intended Audience :: Education",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 2.7",
"Topic :: Scientific/Engineering :: GIS",
"Topic :: Scientific/Engineering :: Visualization"
],
"description": "[english version](#eng_version) -- [\u4e2d\u6587\u7248](#zh_version)\n\n\n# colouringmap\n\nA tool for colouring the geodataframe (adding categories and colours) for making thematic choropleth map.\n\n### intro \nThis is a simple python library for colouring the geodataframe based on a column for scaling. \n\nLet say there is a polygon geodataframe, with a column recording the population density of each area, and you want to create a thematic map that each polygon shows a colour that match its population density, the denser the population, the darker the colour. Therefore, first thing to do is to categorize them by the population density. Several popular ways to do this, including natural break, equal interval, quantile, standard deviation, head-tail break. After breaking the column values into several levels, next thing to do is setting the colours according to level. \n\nThis tool provide two functions to accomplish these tasks:\n1. breaking column values into several levels.\n2. setting the colours according to the levels (from the above or user specified).\n\nThe two functions returns a list that contain the levels of each record(row), and a list that contain the colours, in the same order as the geodataframe you give it. \n\nThere is another simple_mapping(gdf, colour_list, ax, colour_tuples=colour_tuples) function, that take the polygon geodataframe, colour list (from the above, with the same length as the gdf), an axes (matplotlib ax), and a colour tuples (for legend, also from above), to make a simple polygon map. \n\nps: This is designed to use with vmapper, a vector mapping tool in python that generate svg map. But since mapping the variable into map is a common job, so I separated this part as an individual tool for working with geopandas geodataframe.\n\n\n### dependencies\n\n- geopandas: everything is based on geopandas\n- matplotlib/descartes/shapely: the foundation of the mapping\n- numpy: quantile breaks\n- jenkspy: natural break\n- palettable: getting color map\n- matplotlib_scalebar: for making the scale bar\n\ninstalling geopandas can be hard for those who use Windows. (actually is the Fiona that is hard to be installed). Good Luck.\n\n### install\n\nthis package is in alpha, so it is a good idea to install in editable mode (-e)\n```sh\ngit clone https://github.com/wcchin/colouringmap.git\ncd colouringmap/\npip install -e .\n\n```\n\nor \n\n```sh\npip install git+https://github.com/wcchin/colouringmap.git#egg=colouringmap\n\n```\n\n\n### usage\n\n#### Tutorial in ipynb mode\n\ncheck the example directories: https://github.com/wcchin/colouringmap/tree/master/example\n\nfor better usage description.\n\nContent table:\n\n0. break the numbers into levels: https://github.com/wcchin/colouringmap/blob/master/example/breaking%20a%20variable%20to%20levels.ipynb\n1. making category map: https://github.com/wcchin/colouringmap/blob/master/example/make_category_map.ipynb\n2. making a sequential map: https://github.com/wcchin/colouringmap/blob/master/example/make_sequential_map.ipynb\n3. drawing points (most frequently used functions): https://github.com/wcchin/colouringmap/blob/master/example/drawing%20points%20(part%201).ipynb\n4. drawing points (according to a numeric column/sequence): https://github.com/wcchin/colouringmap/blob/master/example/drawing%20points%20(part%202).ipynb\n\n#### quick example\n\n```python\nimport geopandas as gpd\nfrom colouringmap import theme_mapping as tm \n\n## reading files\ngdf = gpd.read_file('testdata/county.shp') ## a polygon file, encoding is utf-8, projection Twd1997/TM2\n#gdf = gdf.to_crs(crs) ## reproject to a valid projection's crs\n\n## prepare the level_list, colour_list, and colour_tuples\nlevel_list, colour_list, colour_tuples = tm.colouring_sequence(gdf, colorbysequence='area', break_method='natural_break', break_N=7, color_group='cmocean_sequential', color_name='Turbid_10')\n\n## preparing the matplotlib fig and ax\nfig,ax = plt.subplots(figsize=(7,7))\nax.set_facecolor('cornflowerblue') # set the background to a blue color\n\n## making the polygon map\nax = tm.simple_mapping(gdf, colour_list, ax, colour_tuples=colour_tuples, title='area')\nplt.show()\n```\n\ncolouringmap.theme_mapping has four main functions: colouring_sequence and colouring_list (colouring based on a series of statistic numbers, _sequence take a gdf and a column name as the input, _list take a list as input), colouring_category (based on a pre-defined category, or named categories), and simple_mapping. \n\ncolouringmap.breaking_levels has a main function: get_levels, which take one list of values (with some other arguments like method, N, cuts), and return two lists: the level_list and cuts point values. \n\ncolouringmap.get_colours has a main function: colour_list, which take a level_list (a list of integer to represent the level), and the colourmaps info (color_group, colour_name, reverse), then return a list of colours with the same length as the level-list (for colouring), and a list with the same length as the set of levels (for making legend). \n\n\n### more info\n#### about the color\nThe colors will be getting from palettable, as now the version ins 3.0.0. \n\nThe valid color_group include:\n- 'cmocean_diverging'\n- 'cmocean_sequential'\n- 'colorbrewer_diverging'\n- 'colorbrewer_qualitative'\n- 'colorbrewer_sequential'\n- 'cubehelix'\n- 'matplotlib'\n- 'mycarta'\n- 'tableau'\n- 'wesanderson'\n\nThe valid color_name can check the website: https://jiffyclub.github.io/palettable/\n\n\n#### about the breaking methods\n\nThe valid breaking methods include:\n- 'manual' # must provide a list of cuts (something like [20, 40, 60, 70, 100] for a variable range from 0 to 100), the max element should be the max element of the list, or it will be added\n- 'equal_interval' # provide the number of cuts expected\n- 'quantile' # must either provide the number of cuts (4 for .25,.50,.75, 1.), or a list of cuts like [.25, .50, .75, 1.]\n- 'standard_deviation' # must provide a number of cut, if len(alist)%2==0, then the mean of all values will also be included\n- 'natural_break' # must provide a number of cut\n- 'head_tail_break' # must provide a number of cut, i have simplified it so it is not that natural as it is in the paper\n\n### updated\n2016-06-10: added colouring_list, to take a list as input and return the 3 lists: levels, colours, and colour_tuples.\n\n-----------\n\ndemo map result -- \u7bc4\u4f8b\u7d50\u679c\n\n\n-----------\n\n[english version](#eng_version) -- [\u4e2d\u6587\u7248](#zh_version)\n\n\n# colouringmap\n\n\u300c\u5206\u5c64\u300d\u8207\u300c\u8a2d\u8272\u300d\u7684\u5730\u5716\u5de5\u5177 -- \u5c0d GeoPandas geodataframe \u52a0\u4e0a\u5206\u5c64\u7d1a\u53ca\u984f\u8272\uff0c\u4f86\u88fd\u4f5c\u5206\u5c64\u8a2d\u8272\u7684\u4e3b\u984c\u5730\u5716\u7684 python \u5de5\u5177\u3002\n\n### \u7c21\u4ecb \n\u9019\u662f\u4e00\u500b\u7232\u4e86\u65b9\u4fbf\u756b\u5716\u800c\u5beb\u7684 python \u5de5\u5177\uff0c\u4e3b\u8981\u662f\u91dd\u5c0d\u5716\u5c64\u8cc7\u6599\u7684\u4e00\u500b\u6b04\u4f4d(\u9023\u7e8c\u6578\u5b57\uff0c\u4f8b\u5982\u7d71\u8a08\u503c\u4e4b\u985e)\u4f86\u4f5c\u8cc7\u6599\u7684\u5206\u5c64\uff0c\u4ee5\u53ca\u6839\u64da\u9019\u500b\u5206\u5c64\u4f86\u52a0\u5165\u984f\u8272\u3002\n\n\u8209\u4f8b\u4f86\u8aaa\uff0c\u6211\u5011\u6709\u4e00\u500b\u9762\u8cc7\u6599\u5716\u5c64\u7684 geodataframe\uff0c\u5176\u4e2d\u6709\u4e00\u500b\u6b04\u4f4d\u8a18\u9304\u7740\u5404\u500b\u5340\u584a\u7684\u4eba\u53e3\u5bc6\u5ea6\uff0c\u800c\u6211\u5011\u60f3\u8981\u7e6a\u88fd\u4e00\u500b\u4eba\u53e3\u5bc6\u5ea6\u7684\u5206\u5e03\u5716\uff0c\u4e5f\u5c31\u662f\u6bcf\u4e00\u500b\u9762\u5340\u584a\u7528\u4e00\u500b\u984f\u8272\u4f86\u7e6a\u88fd\uff0c\u800c\u9019\u500b\u984f\u8272\u662f\u4eba\u53e3\u5bc6\u5ea6\u8d8a\u9ad8\u5247\u8d8a\u6df1\u3002\n\u6240\u4ee5\uff0c\u7b2c\u4e00\u6b65\u8981\u505a\u7684\u5c31\u662f\u91dd\u5c0d\u9019\u9023\u7e8c\u6578\u5b57\u6240\u7d44\u6210\u7684\u4eba\u53e3\u5bc6\u5ea6\u6b04\u4f4d\u53bb\u4f5c\u5206\u5c64\uff0c\u503c\u6700\u9ad8\u7684\u90a3\u4e9b\u5340\u584a\u4e00\u5c64 ... \u6700\u4f4e\u7684\u90a3\u4e9b\u5340\u584a\u4e00\u5c64\uff0c\u7136\u5f8c\u540c\u4e00\u5c64\u7528\u4e00\u500b\u984f\u8272\u4f86\u7e6a\u88fd\u3002\u9019\u5c31\u662f\u5206\u5c64\u8a2d\u8272\u5716\u3002\n\u5e38\u7528\u7684\u5206\u5c64\u65b9\u6cd5\u5305\u62ec: natural break, quantile\uff0c\u6a19\u8a3b\u5dee\u5206\u7d44\uff0c head-tail break\u3002\u81f3\u65bc\u984f\u8272\uff0c\u4e3b\u8981\u6703\u7528\u7684\u662f\u55ae\u8272\u7684\u6f38\u5c64\uff0c2\u8272\u7684\u6f38\u5c64\uff0c\u4ee5\u53ca3\u8272\u7684\u6f38\u5c64\u3002\n\n\u800c\u9019\u500b\u5de5\u5177\u7684\u76ee\u6a19\u5c31\u662f\u63d0\u4f9b\u4ee5\u4e0b\u5169\u500b\u4e3b\u8981\u7684\u529f\u80fd\u4f86\u6eff\u8db3\u4e0a\u8ff0\u63d0\u5230\u7684\u5de5\u4f5c\uff1a\n1. \u91dd\u5c0d\u6b04\u4f4d\u9032\u884c\u5206\u5c64\n2. \u4f9d\u64da\u5206\u5c64\u7d50\u679c\u4f86\u4e0a\u8272\n\n\u9019\u5169\u500b\u529f\u80fd\u5728\u5de5\u5177\u4e2d\u88ab\u5beb\u6210\u5169\u500b python function:\n1. \u5176\u4e00\u6703\u56de\u50b3\u4e00\u500b\u8ddf\u8cc7\u6599\u9577\u5ea6\u4e00\u6a23\u9577\u7684 list\uff0c\u6bcf\u4e00\u500b element \u8868\u793a\u5404\u500b\u9762\u5340\u584a\u7684\u5c64\u7d1a\uff1b\n2. \u5176\u4e8c\u6703\u5403\u9032\u4e00\u500b\u5206\u5c64\u7684 list\uff0c\u53ef\u4ee5\u662f\u524d\u9762\u7684 function \u6240\u7522\u751f\uff0c\u6216\u662f\u4f7f\u7528\u8005\u81ea\u884c\u6e96\u5099\u597d\u7684\uff0c\u7136\u5f8c\u6703\u56de\u50b3\u4e00\u500b\u4e00\u6a23\u9577\u7684 list\uff0c \u6bcf\u4e00\u500b element \u662f\u4e00\u500b color hex code (\u985e\u4f3c #FFFF00)\uff0c\u63d0\u4f9b\u7528\u4f86\u756b\u5716\u3002\n\n\u9019\u5169\u500b list \u7684\u9806\u5e8f\u8207\u5582\u9032\u53bb\u7684 geodataframe \u7684\u9806\u5e8f\u4e00\u81f4\u3002\n\n\u9664\u6b64\u4e4b\u5916\uff0c\u9084\u6709\u4e00\u500b\u7c21\u55ae\u7684\u756b\u5716 function\uff0c\u53eb\u505a simple_mapping\uff0c\u9019\u6703\u5403\u9032 geodataframe, \u984f\u8272\u7684 list\uff0c\u4e00\u500b matplotlib ax\uff0c\u4ee5\u53ca\u4e00\u500b\u984f\u8272\u7d44\u7684 list (\u4f9b\u7522\u751f\u5716\u4f8b)\u3002\n\u9019 function \u53ef\u4ee5\u7528\u4f86\u7e6a\u88fd\u5206\u5c64\u8a2d\u8272\u5716\uff0c\u662f\u4e00\u7a2e\u9762\u5716\u5c64\u7684\u5448\u73fe\u65b9\u5f0f\u3002\n\n\u5176\u5be6\uff0c\u524d\u8ff0\u5169\u500b function \u6703\u56de\u50b3\u51fa\u5169\u500b list\uff0c\u800c\u82e5\u8cc7\u6599\u4e0d\u662f\u9762\u8cc7\u6599\uff0c\u4e5f\u53ef\u4ee5\u61c9\u7528\u9019\u5169\u500b list \u4f86\u7522\u751f\u5176\u4ed6\u7684\u4e3b\u984c\u5716\uff0c\u5305\u62ec\u8b8a\u63db\u9ede\u7684\u5927\u5c0f\u7684 gruaduated symbol \u5716 (\u9ede\u5716\u5c64)\uff0c\u6216\u662f\u6539\u8b8a\u9ede\u6216\u7dda\u984f\u8272\uff0c\u4e26\u4e0d\u9650\u65bc\u7528 matplotlib \u756b\u5206\u5c64\u8a2d\u8272\u7684\u9762\u5716\u5c64\u5730\u5716\u3002\n\nps: \u9019\u5de5\u5177\u4e3b\u8981\u662f\u7232\u4e86 vmapper \u800c\u8a2d\u8a08\uff0c vmapper \u662f\u4e00\u500b\u65b9\u4fbf\u7684\u756b\u5730\u5716\u5c0f\u5de5\u5177\uff0c\u529f\u80fd\u7279\u9ede\u5728\u65bc\u5403\u9032 geodataframe\uff0c\u7136\u5f8c\u7522\u51fa svg \u5730\u5716\u3002\n\u4e0d\u904e\u5f8c\u4f86\u60f3\u5230\u5176\u5be6\u300c\u5206\u5c64\u300d\uff0c\u53ca\u300c\u8a2d\u8272\u300d\u5169\u500b\u52d5\u4f5c\u5728\u756b\u5730\u5716\u6642\u5f88\u5e38\u6703\u7528\u5230\uff0c\u6240\u4ee5\u5c31\u5c07\u9019\u5de5\u5177\u7368\u7acb\u51fa\u4f86\u3002\u5f8c\u7e8c\u6703\u518d\u82b1\u9ede\u6642\u9593\u628a\u529f\u80fd\u52a0\u5165\u5230 vmapper \u4e2d\u3002\n\n### dependencies\n\n- geopandas: \u6240\u6709\u6771\u897f\u57fa\u672c\u4e0a\u90fd\u662f\u57fa\u65bc geopandas\n- matplotlib/descartes/shapely: \u756b\u5730\u5716\u7684\u57fa\u790e\n- numpy: quantile breaks \n- jenkspy: natural break \n- palettable: \u8abf\u8272\u76e4\uff0c\u9019\u5c0f\u5de5\u5177\u6703\u7528\u9019\u8abf\u8272\u76e4\u4f86\u7372\u53d6\u984f\u8272\u7684\u503c\n- matplotlib_scalebar: \u52a0\u5165\u5730\u5716\u7684\u6bd4\u4f8b\u5c3a\n\n\u5728 Windows \u5b89\u88dd geopandas \u53ef\u80fd\u6703\u6709\u9ede\u8907\u96dc (\u5176\u5be6\u662f Fiona \u4e0d\u5bb9\u6613\u5b89\u88dd)\u3002 \u4fdd\u91cd\u3002\n\n\n### \u5b89\u88dd\n\n\u9019\u5957\u4ef6\u9084\u5728 alpha \u968e\u6bb5, \u63a8\u85a6\u7528 editable mode (-e)\n```sh\ngit clone https://github.com/wcchin/colouringmap.git\ncd colouringmap/\npip install -e .\n\n```\n\n\u6216\u662f\u76f4\u63a5\u5f9e\u7db2\u8def\u4e0a\u88dd\u4e0b\u4f86 \n\n```sh\npip install git+https://github.com/wcchin/colouringmap.git#egg=colouringmap\n\n```\n\n\n### \u4f7f\u7528\n\n#### ipynb \u7248\u8f03\u8a73\u7d30\u6559\u5b78 \n\n\u8a73\u7d30\u7684\u64cd\u4f5c\u65b9\u5f0f\u53ca\u7bc4\u4f8b\uff0c\u8acb\u53c3\u8003\u9019\u8cc7\u6599\u593e\u4e2d\u7684\u8aaa\u660e: https://github.com/wcchin/colouringmap/tree/master/example\n\n\n\u6559\u5b78\u93c8\u63a5:\n\n0. \u5c0d\u4e00\u500b\u6578\u5b57\u5217\u4f5c\u5206\u985e: https://github.com/wcchin/colouringmap/blob/master/example/breaking%20a%20variable%20to%20levels.ipynb\n1. \u4f5c\u4e00\u500b\u985e\u5225\u5716\u9762\u91cf\u5716(\u6709\u4e00\u500b\u6b04\u4f4d\u8a18\u9304polygon\u7684\u985e\u5225): https://github.com/wcchin/colouringmap/blob/master/example/make_category_map.ipynb\n2. \u4f5c\u4e00\u500b\u5206\u5c64\u8a2d\u8272\u5716(\u6709\u4e00\u500b\u6b04\u4f4d\u8a18\u9304\u8457\u4e00\u500b\u6578\u5b57\u7684\u8b8a\u9805\u8cc7\u8a0a): https://github.com/wcchin/colouringmap/blob/master/example/make_sequential_map.ipynb\n3. \u756b\u9ede\u8cc7\u6599 (\u5e38\u7528\u7684\u57fa\u672c\u9ede\u529f\u80fd): https://github.com/wcchin/colouringmap/blob/master/example/drawing%20points%20(part%201).ipynb\n4. \u756b\u9ede\u8cc7\u6599 (\u985e\u4f3c\u5206\u5c64\u8a2d\u8272\u5716\uff0c\u4e0d\u904e\u9019\u662f\u756b\u5728\u9ede\u4e0a): https://github.com/wcchin/colouringmap/blob/master/example/drawing%20points%20(part%202).ipynb\n\n#### \u5feb\u901f\u7c21\u55ae\u4f8b\u5b50\n\n```python\nimport geopandas as gpd\nfrom colouringmap import theme_mapping as tm \n\n## \u8b80\u53d6\u8cc7\u6599\ngdf = gpd.read_file('testdata/county.shp') ## a polygon file, encoding is utf-8, projection Twd1997/TM2\n#gdf = gdf.to_crs(crs) ## reproject to a valid projection's crs\n\n## \u6e96\u5099 level_list(\u5206\u5c64 list), colour_list (\u8a2d\u8272 list), \u53ca colour_tuples\nlevel_list, colour_list, colour_tuples = tm.colouring_sequence(gdf, colorbysequence='area', break_method='natural_break', break_N=7, color_group='cmocean_sequential', color_name='Turbid_10')\n\n## \u6e96\u5099\u597d matplotlib fig and ax\nfig,ax = plt.subplots(figsize=(7,7))\nax.set_facecolor('cornflowerblue') # set the background to a blue color\n\n## \u7522\u751f\u9762\u7684\u5206\u5c64\u8a2d\u8272\u5716\nax = tm.simple_mapping(gdf, colour_list, ax, colour_tuples=colour_tuples, title='area')\nplt.show()\n```\n\ncolouringmap.theme_mapping \u6709\u56db\u500b\u4e3b\u8981\u7684 functions: colouring_sequence \u53ca colouring_list (\u91dd\u5c0d\u9023\u7e8c\u7684\u7d71\u8a08\u6578\u5b57\u7684\u6b04\u4f4d\u4f5c\u5206\u5c64\u8a2d\u8272,\u524d\u8005\u7684\u8f38\u5165\u7232\u4e00\u500b gdf \u53ca \u4e00\u500b\u6b04\u4f4d, \u5f8c\u8005\u9700\u8981\u8f38\u5165\u4e00\u500b list), colouring_category (\u61c9\u7528\u9810\u5148\u6e96\u5099\u597d\u7684\u5206\u5c64\u3001\u6216\u662f\u5217\u5225\u8b8a\u9805\uff0c\u82e5\u662f\u5f8c\u8005\u5efa\u8b70\u7528 category \u985e\u7684\u8abf\u8272\u76e4), and simple_mapping (\u7e6a\u88fd\u7c21\u55ae\u7684\u5206\u5c64\u8a2d\u8272\u5716)\u3002 \n\ncolouringmap.breaking_levels \u6709\u4e00\u500b\u4e3b\u8981\u7684 function: get_levels, \u9019\u6703\u91dd\u5c0d\u4e00\u500b\u6b04\u4f4d\u4f86\u9032\u884c\u5206\u5c64\uff0c\u9700\u8981\u63d0\u4f9b\u7684 argument \u5305\u62ec\u5206\u5c64\u65b9\u6cd5\u3001\u5206\u5e7e\u5c64\u3001\u6216\u9810\u5148\u8a2d\u5b9a\u7684\u5206\u5c64\u5207\u9ede\uff0c\u4e26\u4e14\u6703\u7522\u751f\u5169\u500b list : \u5206\u5c64\u7684 list (level_list) \u53ca \u5207\u9ede\u503c\u7684 list (cuts point values)\u3002 \n\ncolouringmap.get_colours \u5247\u6709\u4e00\u500b\u4e3b\u8981 function: colour_list, \u91dd\u5c0d\u5206\u5c64 list (\u4e00\u500b\u7528\u6574\u6578\u4f86\u53cd\u6620\u5206\u5c64\u9806\u5e8f\u7684 list)\uff0c \u53ca\u5206\u5c64\u984f\u8272\u7684\u8a2d\u5b9a (color_group, colour_name, reverse)\uff0c\u4e26\u4e14\u56de\u50b3\u4e00\u6a23\u9577\u7684 list\uff0c \u5176\u4e2d\u8a18\u9304\u6bcf\u4e00\u500b\u9762\u7a7a\u9593\u55ae\u5143\u6240\u5c0d\u61c9\u7684\u984f\u8272\uff0c \u53ca\u4e00\u500b\u8ddf\u5206\u5c64\u6578(\u4f8b\u5982\u5206 5\u5c64\uff0c\u5c31\u662f5)\u4e00\u6a23\u9577\u7684 list \u8a18\u9304\u7740\u984f\u8272\u53ca\u5206\u5c64\u6240\u5c0d\u61c9\u7684\u610f\u7fa9\uff0c\u4f9b\u88fd\u4f5c\u5716\u4f8b\u3002 \n\n\n### \u5176\u4ed6\u8cc7\u8a0a\n#### \u95dc\u65bc\u984f\u8272\n\u984f\u8272\u90fd\u662f\u5f9e palettable \u4e2d\u53d6\u5f97\uff0c\u76ee\u524d\u5176\u7248\u672c\u7232 3.0.0\u3002 \n\n\u53ef\u7528\u7684 color_group \u5305\u62ec:\n- 'cmocean_diverging'\n- 'cmocean_sequential'\n- 'colorbrewer_diverging'\n- 'colorbrewer_qualitative'\n- 'colorbrewer_sequential'\n- 'cubehelix'\n- 'matplotlib'\n- 'mycarta'\n- 'tableau'\n- 'wesanderson'\n\n\u53ef\u7528\u7684 color_name \u8acb\u67e5\u770b: https://jiffyclub.github.io/palettable/\n\n\n#### \u95dc\u65bc\u5206\u5c64\u65b9\u6cd5\n\n\u53ef\u7528\u7684\u5206\u5c64\u65b9\u6cd5\u5305\u62ec\uff1a\n- 'manual' # \u9700\u8981\u63d0\u4f9b\u5207\u9ede list (\u985e\u4f3c [20, 40, 60, 70, 100] \u5982\u679c\u6b04\u4f4d\u7684\u503c\u5728 0 \u5230 100 \u4e4b\u9593)\uff0c\u6700\u5927\u7684\u503c\u61c9\u8a72\u8981\u5927\u65bc\u6216\u7b49\u65bc\u6b04\u4f4d\u4e2d\u7684\u6700\u5927\u503c\uff0c\u5426\u5247\u4e5f\u6703\u81ea\u52d5\u88ab\u52a0\u5230\u6700\u5f8c\u3002\n- 'equal_interval' # \u9700\u8981\u63d0\u4f9b\u60f3\u8981\u5206\u5e7e\u7d44\n- 'quantile' # \u9700\u8981\u63d0\u4f9b\u5207\u9ede\u7684\u6578\u91cf (\u4f8b\u5982 4 \u5247\u6703\u7522\u751f .25,.50,.75, 1.)\uff0c\u6216\u662f\u9810\u8a2d\u7684\u5206\u5e7e\u5c64\u7684\u5217\u8868, \u4f8b\u5982 [.25, .50, .75, 1.]\u3002\n- 'standard_deviation' # \u5fc5\u9808\u63d0\u4f9b\u8981\u5206\u5e7e\u7d44, \u82e5 len(alist)%2==0, \u5247\u6700\u521d\u7684\u5e73\u5747\u503c\u4e5f\u6703\u653e\u5728\u9019\u88cf\u9762\u3002\n- 'natural_break' # \u5fc5\u9808\u63d0\u4f9b\u5207\u9ede\u7684\u6578\u91cf\n- 'head_tail_break' # \u5fc5\u9808\u63d0\u4f9b\u5207\u9ede\u6578\u91cf, \u5df2\u9032\u884c\u7c21\u5316\uff0c\u4ee5\u8b93\u5206\u7d44\u7684\u6578\u91cf\u53ef\u4ee5\u88ab\u63a7\u5236\u3002\n\n\n\n",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/wcchin/colouringmap",
"keywords": "map,geography,catography,thematic map",
"license": "LICENSE.txt",
"maintainer": "",
"maintainer_email": "",
"name": "colouringmap",
"package_url": "https://pypi.org/project/colouringmap/",
"platform": "",
"project_url": "https://pypi.org/project/colouringmap/",
"project_urls": {
"Homepage": "https://github.com/wcchin/colouringmap"
},
"release_url": "https://pypi.org/project/colouringmap/0.0.3/",
"requires_dist": [
"descartes",
"geopandas",
"jenkspy",
"matplotlib-scalebar",
"numpy",
"palettable"
],
"requires_python": "",
"summary": "a mapping tool for generating choropleth map from map data (shpfile), by breaking sequential values into groups, or beforehand prepared category/level.",
"version": "0.0.3"
},
"last_serial": 3128530,
"releases": {
"0.0.3": [
{
"comment_text": "",
"digests": {
"md5": "2bc5b5b750ed859c9ffa2e76ec7a9a92",
"sha256": "dabe6d3ec906e58569429cbaa859e9ffcb506365d72856a0f3ffcecb3599b33a"
},
"downloads": -1,
"filename": "colouringmap-0.0.3-py2-none-any.whl",
"has_sig": false,
"md5_digest": "2bc5b5b750ed859c9ffa2e76ec7a9a92",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 5516406,
"upload_time": "2017-08-28T09:22:20",
"url": "https://files.pythonhosted.org/packages/d7/a8/628998e6d936f215eab18ceb2c4990083fa5433aa441177cfbbb9504e853/colouringmap-0.0.3-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "8f74cff896affeef1173bf486b4ddd19",
"sha256": "8f7c867e2b7ac68661a4b1b11caeb83eba55e8235ac59c23b23c98c8c0b38d44"
},
"downloads": -1,
"filename": "colouringmap-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "8f74cff896affeef1173bf486b4ddd19",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5481504,
"upload_time": "2017-08-28T09:22:26",
"url": "https://files.pythonhosted.org/packages/44/b8/9c528faa8e21c22c060b65fe96972ca21727db2d0fd6409af35dca0cc1bd/colouringmap-0.0.3.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "2bc5b5b750ed859c9ffa2e76ec7a9a92",
"sha256": "dabe6d3ec906e58569429cbaa859e9ffcb506365d72856a0f3ffcecb3599b33a"
},
"downloads": -1,
"filename": "colouringmap-0.0.3-py2-none-any.whl",
"has_sig": false,
"md5_digest": "2bc5b5b750ed859c9ffa2e76ec7a9a92",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 5516406,
"upload_time": "2017-08-28T09:22:20",
"url": "https://files.pythonhosted.org/packages/d7/a8/628998e6d936f215eab18ceb2c4990083fa5433aa441177cfbbb9504e853/colouringmap-0.0.3-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "8f74cff896affeef1173bf486b4ddd19",
"sha256": "8f7c867e2b7ac68661a4b1b11caeb83eba55e8235ac59c23b23c98c8c0b38d44"
},
"downloads": -1,
"filename": "colouringmap-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "8f74cff896affeef1173bf486b4ddd19",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5481504,
"upload_time": "2017-08-28T09:22:26",
"url": "https://files.pythonhosted.org/packages/44/b8/9c528faa8e21c22c060b65fe96972ca21727db2d0fd6409af35dca0cc1bd/colouringmap-0.0.3.tar.gz"
}
]
}