创建一个在每个多边形质心中都有饼图的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是否在servlet中检索上一页路径?   Java抱怨在开关的默认情况下未初始化最终字段   Java泛型:为什么编译器不能判断这个类<t>对象与这个类的类型参数的对象的类具有相同的类型?   Java:继承方法中使用的私有变量   HibernateJava。ClassCastException:java。lang.Integer不能强制转换为abc。def。我的项目。奥姆。EmployeeTopMetaData   http java发布和下载文件   java改进条件检查   java如何将2d数组的条目作为键放在地图中   java如何获取传递给运行时的值。getRuntime。JUnit测试用例中的exit(value)   java注释来创建所有可能的构造函数   自动建议列表:java。lang.IllegalArgumentException:在XPath表达式为null时找不到元素   为什么MapAPI在Java中不提供流功能?   gradle不导入本地java库   尽管我使用的是SessionCreationPolicy,java Spring安全性似乎仍在使用会话。无国籍   使用java查找MongoDB中数组元素的平均值