数据可视化实现数据波动趋势图形"/>
如何使用python数据可视化实现数据波动趋势图形
目录
前言:数据可视化就是将数据转换成图或表等,以一种更直观的方式展现和呈现数据,让读者能“一眼看懂”你想表达的信息。通过“可视化”的方式,复杂的数据通过图形化的手段进行有效表达,准确高效、简洁全面地传递某种信息,甚至我们帮助发现某种规律和特征,挖掘数据背后的价值。
一、通过pandas库导入数据
二、对数据进行去重
三、数据加工
1.数据条件筛选
2.时间数据加工
四、重新聚合车辆季度销量
五、定位销量头部车型
六、重组数据结构
七、使用pyecharts将数据可视化
前言:
通过使用python语言能够很轻易的做出我们需要的图象,图象的生成能够直接明了的让我们了解数据,现在就让我们用本次案例来实现
其中我们需要注意几个要点:
1.导入库pandas------ pip install pandas
2.pyecharts用来实现图像------- pip install pyecharts(注意:pip版本过低可能下载不成功)
3.颜色代码,可以搜索二进制颜色,也可以参考
=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-61915567-blog-79611741.235v38pc_relevant_sort_base2&spm=1001.2101.3001.4242.1&utm_relevant_index=3
一、通过pandas库导入数据
import pandas as pddata_mpv_sale = pd.read_excel('MPV销量数据2012-2021(1).xlsx')
data_mpv_sale
二、对数据进行去重
data_mpv_sale2 = data_mpv_sale.drop_duplicates(subset=['采集时间','排名'],keep='last')
data_mpv_sale2 = data_mpv_sale2.sort_values(by=['采集时间','排名'])
data_mpv_sale2
代码运行结果:
三、数据加工
1.数据条件筛选
'201721'>'20173'data_mpv_sale3 = data_mpv_sale2[data_mpv_sale2['采集时间']>'2017']
data_mpv_sale3['车型'] data_mpv_sale3['厂商']data_mpv_sale3['车型_厂商'] = data_mpv_sale3['车型'] + '_' + data_mpv_sale3['厂商']
data_mpv_sale3
代码运行结果:
2.时间数据加工
data_mpv_sale4 = data_mpv_sale3.copy() # 复制一个表格对象
data_mpv_sale4['年份'] = data_mpv_sale4['采集时间'].agg(lambda x:int(x[:4]))
data_mpv_sale4['月份'] = data_mpv_sale4['采集时间'].agg(lambda x:int(x[-2:]))
def jidu(month):if month<=3:return 1elif month<=6:return 2elif month<=9:return 3else:return 4
data_mpv_sale4['季度'] = data_mpv_sale4.loc[:,'月份'].agg(jidu)
data_mpv_sale4['年份_季度'] = data_mpv_sale4['年份'].agg(lambda x:str(x)+'年') + data_mpv_sale4['季度'].agg(lambda x:str(x)+'季度')
data_mpv_sale4
代码运行结果:
四、重新聚合车辆季度销量
sale_season = data_mpv_sale4.groupby(by=['车型_厂商','年份_季度'])['销量'].sum()
sale_season
代码运行结果:
五、定位销量头部车型
# 16年后前20名
sale_total20 = data_mpv_sale4.groupby(by=['车型_厂商'])['销量'].sum().sort_values(ascending=False)[:10].index.values
sale_total20
代码运行结果:
六、重组数据结构
# 定义时间列表
year = [2017,2018,2019,2020,2021]
season = [1,2,3,4]
list_time = []
for y in year:for s in season:if y==2021 and s>=3:breakelse:list_time.append(f'{y}年{s}季度')
list_time
# 定义字典存储20辆车的季度销量信息
sale_dict = {}
for c in sale_total20:sale_dict.setdefault(c,[]) # 创建键:c,值:[]for t in list_time:if t in sale_season[c].index:sale_dict[c].append(int(sale_season[c][t]))else:sale_dict[c].append(0) # 没有销量记录的季度需要手动填入0
sale_dict
代码运行结果:
七、使用pyecharts将数据可视化
import pyecharts.options as opts
from pyecharts.charts import Linec = (Line(init_opts=opts.InitOpts(width='800px',height='400px')).add_xaxis(xaxis_data=list_time).set_global_opts(
# title_opts=opts.TitleOpts(title="2017-2021年MPV销量前10名车型走势"),tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"), # 配置提示框yaxis_opts=opts.AxisOpts(type_="value",axistick_opts=opts.AxisTickOpts(is_show=True),splitline_opts=opts.SplitLineOpts(is_show=True),),xaxis_opts=opts.AxisOpts(type_="category", boundary_gap=False),datazoom_opts=opts.DataZoomOpts(), # 配置滑动条)
)for name,sale_list in sale_dict.items():c.add_yaxis(series_name=name, # 序列名称,由车型名称定义stack="总量", # 设置堆积图y_axis=sale_list, # 销量数据areastyle_opts=opts.AreaStyleOpts(opacity=0.5), # 设置面积图label_opts=opts.LabelOpts(is_show=False),is_smooth = True, # 显示平滑曲线)
c.render_notebook()
# c.render('2017-2021年MPV销量前10名车型走势.html')
代码运行结果:
小tips:
stack:所有stack的值设置成一样即可以转换成堆积图
areastyle_opts=opts.AreaStyleOpts(opacity=0.5):设置成面积图,50%透明度
可以参考这里:DocumentDescription
好啦!到这里就可以实现案例--MPV车型销量销量堆积面积图。
需要数据的可以评论说哈!感谢观看
更多推荐
如何使用python数据可视化实现数据波动趋势图形
发布评论