兴润建设集团有限公司网站,网站开发怎么谈,烟台开发区做网站,营销培训生利用镜像条形图探索Erasmus项目
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt数据探索 以下数据如果有需要的同学可关注公众号HsuHeinrich#xff0c;回复【数据可视化】自动获取#xff5e; resume_url https://raw.githubusercontent.com/ho…利用镜像条形图探索Erasmus项目importpandasaspdimportnumpyasnpimportmatplotlib.pyplotasplt数据探索以下数据如果有需要的同学可关注公众号HsuHeinrich回复【数据可视化】自动获取resume_urlhttps://raw.githubusercontent.com/holtzy/the-python-graph-gallery/master/static/data/resume.csverasmus_urlhttps://raw.githubusercontent.com/holtzy/the-python-graph-gallery/master/static/data/erasmus.csvresumepd.read_csv(resume_url)datapd.read_csv(erasmus_url)print(resume.head())print(data.head())1、resume数据country_name国家地区名称mean_rec平均入境学生数mean_send平均出国学生数2、data数据academic_year年份participants_x出国学生的x位置participants_y入境学生的x位置y_position学生的y位置绘制有序条形图# 初始化布局fig,axplt.subplots(figsize(6,6))# 创建两个条形图数据已经按照mean_send升序了ax.barh(resume[country_name],resume[mean_rec],colorblue,alpha0.3)ax.barh(resume[country_name],-resume[mean_send],colordarkorange,alpha0.3)# 标题ax.set_title(Number of Student,weightbold)plt.show()移除边框并修改国家标签位置fig,axplt.subplots(figsize(6,6))# 创建两个条形图数据已经按照mean_send升序了ax.barh(resume[country_name],resume[mean_rec],colorblue,alpha0.3)ax.barh(resume[country_name],-resume[mean_send],colordarkorange,alpha0.3)# 移除轴刻度ax.set_xticks([])ax.set_yticks([])# 移除边框ax.spines[[right,top,left,bottom]].set_visible(False)# 国家标签居中fori,country_nameinenumerate(resume[country_name]):ax.text(0,i,country_name,hacenter,vacenter,fontsize8,alpha0.6)# 标题ax.set_title(Number of Student,weightbold,fontsize9)plt.show()添加观测数据fig,axplt.subplots(figsize(6,6))# 创建两个条形图数据已经按照mean_send升序了ax.barh(resume[country_name],resume[mean_rec],colorblue,alpha0.3)ax.barh(resume[country_name],-resume[mean_send],colordarkorange,alpha0.3)# 移除轴刻度ax.set_xticks([])ax.set_yticks([])# 移除边框ax.spines[[right,top,left,bottom]].set_visible(False)# 国家标签居中fori,country_nameinenumerate(resume[country_name]):ax.text(0,i,country_name,hacenter,vacenter,fontsize8,alpha0.6)# 为每个国家地区添加不同年份的观测数据y_position0fori,rowindata.iterrows():# 获取观测值数据sending-row[participants_x]receivingrow[participants_y]y_positionrow[y_position]yearsrow[academic_year]# 根据相关年份更改 alpha 参数决定透明度year_alpha_mapping{2014-2015:0.3,2015-2016:0.4,2016-2017:0.5,2017-2018:0.6,2018-2019:0.7,2019-2020:0.9}alphayear_alpha_mapping[years]*0.6# y轴位置添加小噪声y_positionnp.random.normal(0,0.1,1)# 添加散点ax.scatter(sending,y_position,cdarkorange,alphaalpha,s3)ax.scatter(receiving,y_position,cdarkblue,alphaalpha,s3)# 标题ax.set_title(Number of Student,weightbold,fontsize9)plt.show()额外的注释丰富图表信息# 初始化fig,axplt.subplots(figsize(8,6))# 创建两个条形图数据已经按照mean_send升序了ax.barh(resume[country_name],resume[mean_rec],colorblue,alpha0.2)ax.barh(resume[country_name],-resume[mean_send],colordarkorange,alpha0.2)# 移除轴刻度ax.set_xticks([])ax.set_yticks([])# 移除边框ax.spines[[right,top,left,bottom]].set_visible(False)# 国家标签居中fori,country_nameinenumerate(resume[country_name]):ax.text(0,i,country_name,hacenter,vacenter,fontsize8,alpha0.6)# 为每个国家地区添加不同年份的观测数据y_position0fori,rowindata.iterrows():# 获取观测值数据sending-row[participants_x]receivingrow[participants_y]y_positionrow[y_position]yearsrow[academic_year]# 根据相关年份更改 alpha 参数决定透明度year_alpha_mapping{2014-2015:0.3,2015-2016:0.4,2016-2017:0.5,2017-2018:0.6,2018-2019:0.7,2019-2020:0.9}alphayear_alpha_mapping[years]*0.6# y轴位置添加小噪声y_positionnp.random.normal(0,0.2,1)# 添加散点ax.scatter(sending,y_position,cdarkorange,alphaalpha,s3)ax.scatter(receiving,y_position,cdarkblue,alphaalpha,s3)# 离校和入学学生标签ax.text(-6000,24,Outgoing\nstudents,colordarkorange,hacenter,vacenter,weightbold)ax.text(6000,24,Incoming\nstudents,colordarkblue,hacenter,vacenter,weightbold)# 描述信息的标题ax.text(-7000,9,Students\nexchanges\nin Europe,haleft,vacenter,weightbold,fontsize14)# 描述信息textCountry ranking based on a sample Erasmus programs. Bars show the annual average for the period, points show the values for each year.ax.text(-7000,4.5,text,haleft,vacenter,fontsize7)# 著作信息textData: Data.Europa | Plot: BjnNowakax.text(-7000,1,text,haleft,vacenter,fontsize6)# 年份图例ax.text(x4200,y11,sAcademic Year,fontsize7,weightbold)y_position10# 开始的位置foryear,alphainyear_alpha_mapping.items():# 添加点ax.scatter(4000,y_position,alphaalpha,s5,cblack)ax.text(x4200,yy_position-0.2,syear,fontsize7)y_position-1# 迭代减少# 标题ax.set_title(Number of Student,weightbold,fontsize9)plt.show()参考Mirror barplot with data points共勉