利用pyecharts对全国数据分析岗位数据进行分析
import openpyxl
from pyecharts.charts import Pie,Bar,WordCloud
from pyecharts import options
# 1.提取excel中的数据
wb = openpyxl.open('files/数据分析岗位数据.xlsx')
sheet = wb.active
# sheet = wb['sheet1']
# ============================学历要求饼状图==================================
data = {}
m_r = sheet.max_row
for r in range(2,m_r+1):
value = sheet.cell(r,7).value
if value not in data:
data[value] = 1
else:
data[value] += 1
# print(data)
pie_data = []
for key in data:
pie_data.append((key,data[key]))
print(pie_data)
pie = Pie()
pie.add(
'全国数据分析岗位学历要求',
pie_data,
# 分别设置圆的内圆半径和外圆半径
)
pie.set_global_opts(
legend_opts=options.LegendOpts(
is_show=False
),
title_opts=options.TitleOpts(
title='全国数据分析岗位学历要求情况',
pos_left=350
)
)
pie.set_series_opts(
label_opts=options.LabelOpts(
# {b} - 数据名称、{d} - 百分比比值
formatter='{b}-{d}%' # 占比
)
)
pie.render('files/全国数据分析岗位学历要求饼图.html')
# =================================工作经验柱状图====================================
data1 = {}
for r in range(2,m_r+1):
value1 = sheet.cell(r,6).value
if value1 not in data1:
data1[value1] = 1
else:
data1[value1] += 1
# print(data1
bar = Bar()
x_data = []
y_data = []
for x in data1:
x_data.append(x)
y_data.append(data1[x])
bar.add_xaxis(x_data)
bar.add_yaxis('数量',y_data)
bar.set_global_opts(
# 设置标题
title_opts=options.TitleOpts(
title = '全国数据分析岗位工作经验要求情况',
pos_right = 250, # 标题位置
text_align='center' # 标题是否水平居中
),
# 设置图例
legend_opts=options.LegendOpts(
is_show= False
),
# 设置工具箱
toolbox_opts=options.ToolboxOpts(
is_show=True
),
# 设置区域缩放
datazoom_opts=options.DataZoomOpts(
is_show=True
),
# x轴和y轴的配置
xaxis_opts=options.AxisOpts(
name = '工作经验要求'
),
yaxis_opts=options.AxisOpts(
name = '数量'
)
)
bar.set_series_opts(
# 设置标签
label_opts=options.LabelOpts(
is_show=False
),
# 设置标记点
markpoint_opts=options.MarkPointOpts(
data=[options.MarkPointItem(name='最大值',type_='max'),options.MarkPointItem(name='最小值',type_='min')]
)
)
bar.render('files/全国数据分析岗位工作经验柱状图.html')
# =========================全国数据分析岗位能力要求词云图===================================
data2 = {}
m_r = sheet.max_row
for r in range(2,m_r+1):
value = sheet.cell(r,5).value
if value not in data2:
data2[value] = 1
else:
data2[value] += 1
# print(data2)
wordcloud_data = []
for key in data2:
wordcloud_data.append((key,data2[key]))
# print(wordcloud_data)
wc = WordCloud()
wc.add('',wordcloud_data,shape='triangle')
wc.render('files/全国数据分析岗位能力要求词云图.html')