范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

python数据可视化使用pyecharts绘制简单的数据动态展示图

  最终效果前言
  大家好,我是PYTHON爱好者二狗.今天向各位领导汇报的题目是:使用pyecharts绘制简单的数据动态展示图.  编程环境
  1.文中电脑操作系统:win10
  2.文中所使用的python模块:
  (1).pandas (第三方模块,需要pip安装)
  安装命令:pip install -i   https: /  / pypi.tuna.tsinghua.edu.cn/simple    pandas
  官方文档 :https: //pandas.pydata.org/pandas-docs/stable/
  (2).pyecharts (第三方模块,需要pip安装)
  安装命令:pip install -i   https: /  / pypi.tuna.tsinghua.edu.cn/simple    pyecharts
  官方文档 :https ://pyecharts.org/#/zh-cn/intro
  3.文中数据源文件:二手车数据.csv (如果需要,请后台私信)
  4.pyecharts版本: 1.9.1
  5.文中所使用的IDE: VSCODE(安装Jupyter插件)
  查看pyecharts版本数据动态展示图及数据结构剖析
  数据动态展示图剖析
  数据源表格文件
  文中绘制的动态图表分为:①时间线轮播图,②柱状图,③饼图,④词云图,⑤树图
  接下来,二狗向各位领导汇报绘制过程及注意事项.  代码拆检import pandas as pd  # 导入pandas模块 df = pd.read_csv("二手车数据.csv",index_col=0) # 读取数据表格 df["car_year"] = df.car_year.agg(lambda x : x.split("-")[0])  # 切割表格中的car_year列的所有值 取出年份 df = df[(df.car_city=="昆明")            | (df.car_city=="贵阳")            |(df.car_city=="南宁")            | (df.car_city=="成都")            | (df.car_city=="重庆")           |(df.car_city=="拉萨")]  # 筛选出表格中car_city列中的昆明,贵阳,南宁,成都,重庆,拉萨的数据 tb = df.pivot_table(values=["car_price(万元)",],index=["car_year","car_city"])  # 把筛选出的城市数据聚合分类计算出每年每个城市的二手车均值
  每年每个城市的二手车均值
  注:pivot_table()方法,不指定  aggfunc参数时, 默认  aggfunc="mean"计算均值. year_list = [i[0] for i in tb.index] # 生成一个装有年份的列表 city_list = [i[1] for i in tb.index]  # 生成一个装有城市名称的列表 price_list = [round(i,ndigits=2) for i in tb["car_price(万元)"]] # 生成一个装有每个城市均值的列表,对列表里的每个元素四舍五入,保留2位小数 time_data = {} #创建一个空字典 for k,v1,v2 in zip(year_list,city_list,price_list): #遍历 year_list city_list price_list 组装一个数据格式为{年份:{城市:价格...}}的字典     if k not in time_data:         time_data[k] = {v1:v2}     else:         time_data[k].update({v1:v2})
  组装好的字典结构import pyecharts.options as opt from pyecharts.commons.utils import JsCode from pyecharts.charts import Pie, Bar,Timeline,Grid,TreeMap,WordCloud from pyecharts.globals import ThemeType #导入绘图模块 tl = Timeline(     init_opts=opt.InitOpts(         theme=ThemeType.DARK,         animation_opts=opt.AnimationOpts(             animation_duration=3000,             animation_delay_update = 10,     ) ))# 绘制时间线轮播图 for year,city_price_dict in time_data.items(): #分别遍历字典的键和值     values_list = list(sorted(city_price_dict.items(), key=lambda value : value[1], reverse=True))     # 把字典的值 转换为降序排列(从大到小)的列表 [(城市1,价格1),(城市2,价格2)...]     values_data = (sorted(city_price_dict.items(), key=lambda value : value[1], reverse=False))     # 把字典的值 转换为升序排列(从小到大)的列表 [(城市1,价格1),(城市2,价格2)...]
  values_data结果
  values_list结果import pyecharts.options as opt from pyecharts.commons.utils import JsCode from pyecharts.charts import Pie, Bar,Timeline,Grid,TreeMap,WordCloud from pyecharts.globals import ThemeType #导入绘图模块 tl = Timeline(     init_opts=opt.InitOpts(         theme=ThemeType.DARK,         animation_opts=opt.AnimationOpts(             animation_duration=3000,             animation_delay_update = 10,     ) ))# 绘制时间线轮播图 for year,city_price_dict in time_data.items(): #分别遍历字典的键和值     values_list = list(sorted(city_price_dict.items(), key=lambda value : value[1], reverse=True))     # 把字典的值 转换为降序排列(从大到小)的列表 [(城市1,价格1),(城市2,价格2)...]     values_data = (sorted(city_price_dict.items(), key=lambda value : value[1], reverse=False))     # 把字典的值 转换为升序排列(从小到大)的列表 [(城市1,价格1),(城市2,价格2)...]     pie = (#绘制饼图         Pie()         .add(             series_name=" 单位:万元",             data_pair = values_data,             radius= ["50%","60%"],             center = ["70%","50%"],             rosetype= "radius"         )         .set_global_opts(             title_opts=opt.TitleOpts(                 title= f"{year}年西南地区二手车均价"             )         )     )     charts = WordCloud()     charts.add( #绘制词云图         series_name = "均价(万元)",         data_pair= values_data,         textstyle_opts=opt.TextStyleOpts(font_family="serif"),         shape = "diamond",         word_size_range= [10, 50],         pos_left = "35%",         pos_top = "12%",     )     charts.set_global_opts(         title_opts = opt.TitleOpts(         ),      )     bar = (#绘制柱状图         Bar()         .add_xaxis([i[0] for i in values_data])         .add_yaxis(             "单位万元",              [i[1] for i in values_data],             bar_width=30,             category_gap=0         )         .reversal_axis()         .set_global_opts(             legend_opts=opt.LegendOpts(is_show=False),             yaxis_opts=opt.AxisOpts(is_show=True,),             xaxis_opts=opt.AxisOpts(is_show=True),         )         .set_series_opts(             label_opts=opt.LabelOpts(position="right"),              itemstyle_opts={             "normal": {                 "color": JsCode(                     """new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: "rgba(0, 244, 255, 1)"}, {offset: 1,color: "rgba(0, 77, 167, 1)"}], false)"""                 ),                 "barBorderRadius": [30, 30, 30, 30],"shadowColor": "rgb(0, 160, 221)",             }         }         )     )     tree = ( #绘制树图         TreeMap()         .add(             series_name=year,             data=[{"value":i[1],"name":i[0]} for i in values_data],             visual_min=30,             leaf_depth=1,             # 标签居中为 position = "inside"             width=  "12%",             height= "53%",             pos_left = "88%",             pos_top = "47%",             label_opts=opt.LabelOpts(position="inside"),             breadcrumb_opts=opt.TreeMapBreadcrumbOpts(                 is_show=False,                 pos_left= "left",                 height=50,                 ),             roam=False,         )         .set_global_opts(             legend_opts=opt.LegendOpts(is_show=False),             title_opts=opt.TitleOpts(                              ),         )     )              grid_chart =( #把绘制好的图形组合在一起         Grid()         .add(             bar,             grid_opts=opt.GridOpts(                 width=  300,                 height= 320            ),         )         .add(             tree,             grid_opts=opt.GridOpts(                             ),         )         .add(            charts,            grid_opts=opt.GridOpts(                             ),         )         .add(            pie,            grid_opts=opt.GridOpts(                           ),         )     )     tl.add( #把组合好的图形,添加进时间线轮播图里         chart=grid_chart,         time_point= f"{year}年",     )     tl.add_schema(         is_auto_play= True,         is_timeline_show=True,         orient="horizontal",         pos_left="left",         symbol_size=[8,5]     )  tl.render("时间线图.html")#生成绘制好的图形html文件 tl.render_notebook() # 在notebook里渲染出来绘制好的图形
  PS:绘图过程就是调整各图形的对应的参数,各位领导请  详阅  官方文档: https ://pyecharts.org/#/zh-cn/intro  完整代码import pandas as pd import pyecharts.options as opt from pyecharts.commons.utils import JsCode from pyecharts.charts import Pie, Bar,Timeline,Grid,TreeMap,WordCloud from pyecharts.globals import ThemeType time_data = {}  tl = Timeline(     init_opts=opt.InitOpts(         theme=ThemeType.DARK,         animation_opts=opt.AnimationOpts(             animation_duration=3000,             animation_delay_update = 10,     ) )) df = pd.read_csv("二手车数据.csv",index_col=0) df["car_year"] = df.car_year.agg(lambda x : x.split("-")[0]) df = df[(df.car_city=="昆明") | (df.car_city=="贵阳") |(df.car_city=="南宁") | (df.car_city=="成都") | (df.car_city=="重庆")| (df.car_city=="拉萨")] tb = df.pivot_table(values=["car_price(万元)",],index=["car_year","car_city"]) year_list = [i[0] for i in tb.index] city_list = [i[1] for i in tb.index] price_list = [round(i,ndigits=2) for i in tb["car_price(万元)"]] for k,v1,v2 in zip(year_list,city_list,price_list):     if k not in time_data:         time_data[k] = {v1:v2}     else:         time_data[k].update({v1:v2}) for year,city_price_dict in time_data.items():     values_list = list(sorted(city_price_dict.items(), key=lambda value : value[1], reverse=True))     values_data = (sorted(city_price_dict.items(), key=lambda value : value[1], reverse=False))     pie = (         Pie()         .add(             series_name=" 单位:万元",             data_pair = values_data,             radius= ["50%","60%"],             center = ["70%","50%"],             rosetype= "radius"         )         .set_global_opts(             title_opts=opt.TitleOpts(                 title= f"{year}年西南地区二手车均价"             )         )     )     charts = WordCloud()     charts.add(         series_name = "均价(万元)",         data_pair= values_data,         textstyle_opts=opt.TextStyleOpts(font_family="serif"),         shape = "diamond",         word_size_range= [10, 50],         pos_left = "35%",         pos_top = "12%",     )     charts.set_global_opts(         title_opts = opt.TitleOpts(         ),      )     bar = (         Bar()         .add_xaxis([i[0] for i in values_data])         .add_yaxis(             "单位万元",              [i[1] for i in values_data],             bar_width=30,             category_gap=0         )         .reversal_axis()         .set_global_opts(             legend_opts=opt.LegendOpts(is_show=False),             yaxis_opts=opt.AxisOpts(is_show=True,),             xaxis_opts=opt.AxisOpts(is_show=True),         )         .set_series_opts(             label_opts=opt.LabelOpts(position="right"),              itemstyle_opts={             "normal": {                 "color": JsCode(                     """new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: "rgba(0, 244, 255, 1)"}, {offset: 1,color: "rgba(0, 77, 167, 1)"}], false)"""                 ),                 "barBorderRadius": [30, 30, 30, 30],"shadowColor": "rgb(0, 160, 221)",             }         }         )     )     tree = (         TreeMap()         .add(             series_name=year,             data=[{"value":i[1],"name":i[0]} for i in values_data],             visual_min=30,             leaf_depth=1,             # 标签居中为 position = "inside"             width=  "12%",             height= "53%",             pos_left = "88%",             pos_top = "47%",             label_opts=opt.LabelOpts(position="inside"),             breadcrumb_opts=opt.TreeMapBreadcrumbOpts(                 is_show=False,                 pos_left= "left",                 height=50,                 ),             roam=False,         )         .set_global_opts(             legend_opts=opt.LegendOpts(is_show=False),             title_opts=opt.TitleOpts(                              ),         )     )              grid_chart =(         Grid()         .add(             bar,             grid_opts=opt.GridOpts(                 width=  300,                 height= 320            ),         )         .add(             tree,             grid_opts=opt.GridOpts(                             ),         )         .add(            charts,            grid_opts=opt.GridOpts(                             ),         )         .add(            pie,            grid_opts=opt.GridOpts(                           ),         )     )     tl.add(         chart=grid_chart,         time_point= f"{year}年",     )     tl.add_schema(         is_auto_play= True,         is_timeline_show=True,         orient="horizontal",         pos_left="left",         symbol_size=[8,5]     )  tl.render("时间线图.html") tl.render_notebook()结语
  以上汇报完毕,下篇文章再见.(如需文中数据资料请后台私信 )

哈姆我不想再看到最后两分钟的裁判报告了!直播吧1月29日讯今日NBA常规赛,湖人客场加时121125不敌绿军,湖人主帅哈姆赛后接受了媒体采访。常规时间最后时刻,詹姆斯直杀内线一打五突破不进,詹姆斯控诉塔图姆打手犯规但裁判末节独砍21分,欧文爆发,篮网结束两连败!乔哈回暖,布伦森264北京时间1月29日,NBA常规赛继续进行,篮网主场迎战尼克斯。此前篮网战绩为29胜19负,排名东部第四,尼克斯战绩为27胜23负,排名东部第七。自从杜兰特受伤后,欧文独自带队战绩2李铁事件后续!名记曝光足协大鱼姓杜,违规提拔近10名亲信正义可能会迟到但是从来不会缺席!李铁从曾经球迷眼中的英雄变成现如今人人吐槽的罪人,李铁见证了中国足球的辉煌和没落,相信很多看球早的球迷依然记得2002年韩日世界杯,那时候的李铁意气伦纳德3284,乔治2376,快船120113力擒老鹰,喜提五连胜!北京时间1月29日上午830NBA常规赛快船队客场出征老鹰队,其首发阵容为曼恩肯纳德乔治伦纳德祖巴茨老鹰队首发为特雷杨穆雷亨特科林斯卡佩拉。第一节正式开战,伦纳德背身单打命中2分,巴萨官方公告巴塞罗那足球俱乐部和球员阿隆索已达成协议,将他的合同续约至2024年6月30日,违约金5000万欧元。阿隆索2022年9月2日加盟巴萨,并在8天后联赛第5轮对阵加的斯的比赛中替补出杰伦布朗这可能是近几年最好的湖凯大战很高兴我们赢了直播吧1月29日讯凯尔特人今日在主场经历加时,125121力克湖人。赛后,凯尔特人主将杰伦布朗接受了媒体采访。最终,还是场上的球员们决定比赛。我们在最后时刻打出了精彩回合,他们在最迪马利亚谈阿根廷争议庆祝荷兰赛前言论不敬,都是他们先挑的事直播吧1月29日讯近日,迪马利亚接受阿根廷媒体奥莱报的采访,谈到了对世界杯上一些争议瞬间的看法。有一种感觉,法国觉得他们能赢,有人说阿根廷在世界杯踢得很脏,他们对我们的反响不太对,马特乌斯我为穆阿尼本赛季表现而感到兴奋,他是德甲宝贵财富直播吧1月29日讯德国名宿马特乌斯在接受sportbuzzer的采访时表示,他为穆阿尼本赛季的表现而感到兴奋。马特乌斯表示我对穆阿尼整个赛季的表现而感到兴奋,他在比赛中充满快乐自信U23国足新年首期集训名单,苏州东吴余隆赟梁伟棚在列扬子晚报网1月28日讯(记者张晨瑆孙云岳张昊)北京时间1月28日,为备战2024年巴黎奥运会预选赛暨U23亚洲杯,国足U23公布2023年首期集训名单。来自中甲苏州东吴队的余隆赟梁被称为小全智贤的高允贞,火得毫无例外零色感美人最近,凭借还魂2光与影登场的高允贞人气飙升,更是成为了韩素汐的头号劲敌。第一部中出演绝美杀手落寿的高允贞,第二部中直接晋升女主,凭借逆天颜值深深掳获了观众的心。和李宰旭组30位央视新闻主播的春节出镜服装,让人赏心悦目,谁搭配最好看?30位央视新闻主播的春声出镜服装,款式新颖颜色喜庆,谁赢了?不知道具体从哪一年开始,每到我们的重要节庆日,电视节目主持人都会很应景地换上新衣服。以央视主持人为例,在最隆重的传统节日
十一出行,这5款解馋零食记得带,旅途堵车不堵心,比泡面靠谱马上就要到十一小长假,想必大家这会已经开始安排自己的假期行程。很多朋友为方便都会选择自驾出游,不过堵车这个问题就很让人头疼,这个时候各种干粮更要准备妥当!大多数人出远门的标配就是泡今晨,天安门广场祝福祖国巨型花果篮亮相经过深夜吊装,天安门广场上的祝福祖国巨型花果篮今晨与市民游客见面了。整个国庆摆花工作将在9月25日全部完成。正值周末,不少市民赶早儿来到天安门广场,只为一睹花果篮的芳容。这座巨型花要论城市里好吃又好逛的地儿,还得是这儿朋友们,作为一个杭州人,每当被问杭州哪里适合逛街啊?我都会一时语塞,然后给出嘉里中心湖滨in77这样毫无新意的答案。别误会,西湖边的商圈当然是好逛的。只是全国商圈都开始同质化了,入广州出发贺州2天游,走进黄姚古镇,畅游紫云洞东潭岭玉泉洞天今天给大家介绍一条广西贺州高铁2天游行程,黄姚古镇静享慢时光,潭岭俯瞰全景黄姚,行摄紫云仙境。我们的目的地黄姚古镇曾经有人这样形容过黄姚黄姚古镇如同一本千年的诗集,被人遗忘在图书馆喜迎二十大忠诚保平安西安旅游警察为游客当好平安旅程护航员来源西安公安维护市场秩序守护游客平安严打涉旅违法犯罪。近年来,西安市公安局建设旅游警察队伍,助力西安擦亮千年古都常来长安旅游金招牌。在党的二十大即将召开之际,西安市公安局总结工作亮最新消息,长沙南部片区包爷庙的来历诗人朱文怡明朝永乐三年(1405年)也就是郑和第一次下西洋的这一年,在中国大地上继洪武年间的人口大迁移后又再次掀起了人口迁移政策。自永乐初年起,湖南等地也陆陆续续迎来一些北方人氏前云蒙山地质公园作者王海先云蒙山,被称为小黄山,在密云和怀柔交界处,古称云梦山,是京郊著名的风景名胜区,也是北京市著名的国家级森林公园。境内山势耸拔,沟谷切割幽深,奇峰异石多姿,林木花草馥郁,自然宁城县五化镇苹果产业带富一方百姓金秋时节,走进风景秀丽景色宜人的五化镇,红彤彤的苹果金灿灿的梨子随风摇曳,浓浓的果香扑面而来,沁人心脾。宁城县五化镇具有得天独厚的气候条件,是远近闻名的苹果产地。在马营子村的果林里体育总局文旅部联合发布2022年国庆假期体育旅游精品线路文旅之声微信公众号9月24日消息,9月22日,国家体育总局文化和旅游部联合发布2022年国庆假期体育旅游精品线路,包括河北崇礼后奥运体育旅游线路吉林环长白山体育旅游线路江苏盐城绿野菊黄蟹肥时龙袍汤包节邀你品鲜掉眉毛的蟹黄汤包啦秋风起,蟹脚痒,正是菊黄蟹肥时,在这个浪漫和诗意并存的季节,若想体验舌尖的快乐,不用费心去远方寻找,来一趟龙袍足矣,在这里邂逅鲜香美味,遇见动人美好。每个金秋时节,龙袍蟹黄汤包文化海南屯昌景区景点体育场馆恢复营业来源屯昌县旅游和文化广电体育局关于屯昌县景区景点体育场馆有序开放营业的通告为进一步巩固疫情防控成果,有序恢复旅文市场经济活力,确保常态化疫情防控期间人民群众的旅游体育消费需求,经屯