创建一个在每个多边形质心中都有饼图的choropleth贴图。

choropie的Python项目详细描述






choropie
==============




>版本号:0.0.3
>作者:文森特尼科拉耶夫









/>
aBasemap/MatPlotLib工具包,允许使用shapefile简化创建带色条的choropleth贴图,以及在形状文件多边形的质心坐标内组合绘制饼图。


*容易插入色条。
*在每个SHP文件的多边形质心绘制饼图。
*使用饼图的大小,甚至每个饼图的大小(即其半径的长度),可视化额外的功能。
*将主轴限制在特定区域(缩放到区域)。
*使用地理坐标系转换多边形和饼图。
*使用多边形上的偏移进行轻微平移。
*基映射类继承。
*访问matplotlib对象。

示例:
——
不带大小数据:
<;img src="https://user-images.githubusercontent.com/30331170/3305049-ebfc0cd2-ce30-11e7-92df-84269f423ea8.png"width="60%"/>;

带大小数据:
<;img src="https://user-images.githubusercontent.com/30331170/33052907-04C44316-CE3F-11E7-9BB0-D3C426502DE4.png"width="60%"/>;


img src="https://user-images.githubusercontent.com/30331170/3305018-b200156e-ce30-11e7-9ffa-b58885df2062.png"width="60%"/>;

安装
----


要安装,请使用pip(尚未):


$pip install choropie



或克隆repo:


$git clone https://github.com/vinceniko/choropie.git
$python setup.py install

basic用法
----
此示例使用取自<;https://www.kaggle.com/the guardian/the counted>;的数据和美国人口普查数据,包括:每个州的人口,每个州的每个种族的人口。
*免责声明:用于呈现以种族为中心的数据的颜色并不反映任何一种思想。我意识到有些人可能觉得使用这些颜色是冒犯,但没有暗示或意图冒犯。选择的颜色只是用来更好地解释在下面的解释中引入的概念。

=cp.get_shp_attributes(shp_file)提取shp属性(与basemap相同。"area"_info)
shp_key=cp.find_shp_key(df_state['counts')。索引,shp_lst)确定哪个shp属性与将用于绘图的区域名称索引匹配


basemap=dict(
basemap_kwargs=dict(
llcrnrlon=-119,llcrnrlat=22,urcrnlon=-64,urcrnlat=49,projection=-lcc,lat_1=33,lat_2=45,lon_0=-95
),
shp_file=/cb_2016_美国州_500k/cb_2016_美国州_500k',
shp_key='name',
figsize=(22,12),


choro=dict(
num_colors=8,
cmap='hot_r',
color_data=df state['counts'],


pie=dict(
大小数据=df_state["人均"],
大小比率=df_race["人均"],
pie_data=df_race["人均"],
pie_dict={亚洲人':"黄","黑","西班牙人':"棕","美洲土著人':"红","太平洋海洋人":"紫","白色":"白色"},
比例系数=1,
比例系数=1/2



test=cp.choro pie(**basemap)


test.choro图(**choro)
test.pie图(**pie)

test.insert_colorbar(colorbar_title='map:count of killings',colorbar_loc_kwargs=dict(location='right'))
test.insert_pie_legend(legend_loc='lower right',pie_legend_kwargs=dict(title='pies:racial breakdown')
`````
参数解释:
其中colorb数据和大小数据是熊猫以SHP文件中使用的区域名称作为索引的单个索引系列。


area_name人均比率
--作为第二个索引。





areau name种族种族种族;阿拉巴马注释-
*choropie类继承直接从基础地图。
*饼图是可选的。如果绘制了pie,那么size_数据和size_比率都是可选的。并不是所有的馅饼都必须被绘制出来(如果它变得太杂乱…尽管在这种情况下,你可以调用zoom_to_area方法)。
*choropleth绘图是可选的。
*pie_dict参数为每个饼图切片选择颜色。

结果:
<;img src="https://user-images.githubusercontent.com/30331170/3305018-b200156e-ce30-11e7-9ffa-b58885df2062.png"width="100%"/gt;

加州是警察杀人最多的地方。
2。加利福尼亚州的警察杀人率并不是最高的,新墨西哥州等州的警察杀人率也在前几位。
3。在大多数州,死亡人数最多的种族是白人。
4。尽管如此,在俄克拉荷马州和密苏里州,当根据每个种族的人口差异进行调整时,更多的黑人被按比例杀害。

其他功能的说明:
<;img src="https://user-images.githubusercontent.com/30331170/33150972-f0d7bf66-cfa3-11e7-9337-29cca69af4a7.png"width="25%"/gt;
*大小数据缩放每个饼图相对于其他饼图的总直径。
<;img src="https://user-images.githubusercontent.com/30331170/33150962-e629ca50-cfa3-11e7-97ed-6130e632bb6f.png"width="25%"/>;
*大小比率缩放图表中相对于其他饼图切片的切片大小(或其半径的长度)。
<;img src=https://user-images.githubusercontent.com/30331170/33052934-2f5ad324-ce3f-11e7-8e0c-2fb3f459aa29.png width="50%"/>;

`````
df state=df primary[df primary['state']='new york']
queery=df state.set_index('county')。loc[['queens','bronx','brooklyn','manhattan','staten岛,洛克兰德,韦斯特切斯特,橙色,'putnam']['fips'].unique().astype(int)


测试.缩放到区域([str(num)表示皇后区的num])
````
*传递一个区域名列表以缩放到区域,将主轴约束到这些区域的最小和最大坐标之间的差异(在本例中,此方法允许我们将主结果图像中的piecharts向页面顶部取消排序)。此后,调用zoom_home重置轴限制。
*有多种方法可用于轻松有效地转换多边形和饼图。(例如)请参阅夏威夷和阿拉斯加是如何在上述图像中绘制的)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用JNA创建同一库的多个实例?   java在将Graphql查询作为JSON字符串传递时收到意外的令牌错误   OAuth2 oltu的java问题   java桌面应用程序使用的好的嵌入式数据库是什么?   java Firebase数据库高级查询选项   java正在使磁盘上的EhCache元素过期   java 安卓还原处于backstack中的片段的实例状态   XMemcached中的java异步集   java TimescaleDB是否使用与Postgresql完全相同的JDBC驱动程序?   java从网站c读取信息#   检查java Android中的字符串是否只包含数字和空格   c#如何向web服务发送特殊字符?   grails无法调用需要java的方法。lang.类参数?   java我在组合框中调用的方法不会运行所有代码,它只运行部分代码   java发送带有标头的HTTP GET请求