接着上一篇继续的数据进行分析
5.4 公司规模
df.loc[:,'公司规模'].value_counts()
我们把公司规模按照人数分为3类:2000人的为大型公司,15人的为小型公司,其他为中型公司。则有,大型企业:156 , 中型企业:244 , 小型企业:10。
plt.figure(figsize=(6,9))
#定义饼状图的标签,标签是列表
labels = [u'大型企业',u'中型企业',u'小型企业']
#每个标签占多大,会自动去算百分比
sizes = [156,244,10]
colors = ['red','yellowgreen','lightskyblue']
#将某部分爆炸出来, 使用括号,将第一块分割出来,数值的大小是分割出来的与其他两块的间隙
explode = (0.05,0,0)
patches,l_text,p_text = plt.pie(sizes,explode=explode,labels=labels,colors=colors,
labeldistance = 1.1,autopct = '%3.1f%%',shadow = True,
startangle = 90,pctdistance = 0.6)
# 参数:
#labeldistance,文本的位置离远点有多远,1.1指1.1倍半径的位置
#autopct,圆里面的文本格式,%3.1f%%表示小数有三位,整数有一位的浮点数
#shadow,饼是否有阴影
#startangle,起始角度,0,表示从0开始逆时针转,为第一块。一般选择从90度开始比较好看
#pctdistance,百分比的text离圆心的距离
#patches, l_texts, p_texts,为了得到饼图的返回值,p_texts饼图内部文本的,l_texts饼图外label的文本
#改变文本的大小
#方法是把每一个text遍历。调用set_size方法设置它的属性
for t in l_text:
t.set_size(20)
for t in p_text:
t.set_size(15)
# 设置x,y轴刻度一致,这样饼图才能是圆的
plt.axis('equal')
plt.title('数据分析岗位企业规模')
plt.legend()
plt.show()
plt.figure(figsize=(6,9))
labels = [u'大型企业',u'中型企业',u'小型企业']
#每个标签占多大,会自动去算百分比
sizes = [156,244,10]
plt.pie(sizes, labels=labels, startangle = 90,autopct = '%3.1f%%',pctdistance = 0.8,
counterclock = False, wedgeprops = {'width' : 0.5});
for t in l_text:
t.set_size(20)
for t in p_text:
t.set_size(15)
plt.axis('equal')
plt.title('数据分析岗位企业规模')
plt.legend()
plt.show()
使用seaborn、pyecharts画图
5.1节的"城市与职位数量"
使用seaborn、pyecharts进行画图,与matplotlib进行对比。
# seaborn
plt.figure(figsize=(10, 10), dpi=80)
x = city[:15].index
y = city[:15].values
sns.barplot(x=x, y=y, data=df,capsize=.05)
plt.xlabel('城市')
plt.ylabel('职位数量')
plt.title('城市与职位数量')
plt.show()
# pyecharts
x = city[:15].index
y = city[:15].values
x1 = list(x)
# y1 = list(y)
y1=[147, 109, 40, 22, 17, 12, 11, 8, 5, 4, 4, 4, 3, 3, 3]
bar = Bar()
#指定柱状图的横坐标
bar.add_xaxis(x1)
#指定柱状图的纵坐标,而且可以指定多个纵坐标
bar.add_yaxis("职位数量", y1)
bar.set_global_opts(title_opts=opts.TitleOpts(title="城市与职位数量"))
bar.render_notebook()
matplotlib:
seaborn
pyecharts:
5.2.2 月薪与城市
plt.figure(figsize=(20, 10), dpi=80)
x = salary_by_city_sort.index
y = salary_by_city_sort.values
sns.barplot(x=x, y=y, data=df,capsize=.05,label="num")
plt.xlabel('城市')
plt.ylabel('职位数量')
plt.title('城市与平均月薪')
plt.legend(loc="upper right")
plt.show()
matplotlib:
seaborn:
代码链接:https://github.com/guotianyi960531/shixiseng_Dataget
*End