首页 > 其他分享 >数据可视化~~看板的切换设置+光滑折线图

数据可视化~~看板的切换设置+光滑折线图

时间:2024-08-22 18:22:34浏览次数:10  
标签:name 列表 柱状图 可视化 likes 博主 折线图 看板 opts

目录

1.问题背景

2.安装模块

3.绘制柱状图的实现

4.对于图表的完善

5.重新思索


1.问题背景

我们想要通过这个用户的获得点赞的数量和她的粉丝数量的比值作为一个指标,我们想要绘制一个柱状图取值管的进行这个排名;

下面的这个是今天最后我们实现的终极效果,看看吧,是不是迫不及待了~~~

2.安装模块

pip install pyecharts==1.8.1

因为这个模块不是我们的内置模块,因此需要我们自己进行导入;

3.绘制柱状图的实现

# 从pyecharts.charts中 导入 Bar模块
from pyecharts.charts import Bar
# 创建一个柱状图Bar对象并赋值给变量bar
bar = Bar()
# 将10位博主的姓名存入变量名为'name'的列表中
name=["一起画笔记","我是课代表","菠萝冰和夏天","Jeannie花","Esther天",
      "爱草莓的小挺","栀缘","钢琴上的音乐","Mu123","师008号"]

# 按照博主姓名的顺序,依次将博主的粉丝数量存入变量名为'fans'的列表中
fans=[12.5,23.1,38.5,15.8,14.1,11.4,18.2,16.5,22.6,32]

# 按照博主姓名的顺序,依次将博主的点赞收藏量存入变量名为‘likes’的列表中
likes=[18.2,15.2,222.7,71.5,8.6,70.5,107.7,128.3,109,31.7]

# 计算点赞收藏量与粉丝量的比值
# 1、定义一个空列表ratioList,存储点赞收藏量与粉丝量的比值
ratioList = []
# 2、统计点赞收藏量列表长度,并赋值给length
length = len(likes)
# 3、将点赞收藏量列表中的值除以对应粉丝量列表中的值,
# 并使用round()函数取近似值并保留2位小数,存储到ratioList列表中
for i in range(length):
    ratio = round(likes[i]/fans[i],2)
    # 使用append函数向这个列表里面添加数据
    ratioList.append(ratio)

# 给柱状图添加x轴数据,数据内容是博主姓名列表:name
bar.add_xaxis(xaxis_data=name)

# 给柱状图添加y轴数据,数据内容是赞粉比列表:ratioList
# series_name是这个柱状图的图例的名字,不加上这个参数就会报错
bar.add_yaxis(series_name="赞粉比", y_axis=ratioList)

# TODO 绘制出这条柱状图,并保存到/Users/Yoyo/Desktop/中,文件名称为fans_likes.html
# 使用render函数对于这个柱状图进行保存,保存为png可能会损坏,我们可以保存为html格式
# bar.render(r"E:\zanfenbi.png")
bar.render(r"E:\zanfenbi.html")

绘制效果:

4.对于图表的完善

我们观察就可以直观的发现,这个图表没有标题,而且这个横坐标上面的名字显示的也不是很完全

我们下面通过全局配置项进行完善:

下面的这个代码就是在上面的基础上进行了三处的修改:

# 添加一个模块,用来进行这个全局配置

# 旋转这个x轴的角度

# 添加标题

# 导入options 模块并简写为opts
from pyecharts import options as opts
# 从pyecharts.charts中 导入 Bar模块
from pyecharts.charts import Bar
# 创建一个柱状图Bar对象并赋值给变量bar
bar = Bar()
# 将10位博主的姓名存入变量名为'name'的列表中
name=["一起画笔记","我是课代表","菠萝冰和夏天","Jeannie花",
      "Esther天","爱草莓的小挺","栀缘","钢琴上的音乐","Mu123","师008号"]

# 按照博主姓名的顺序,依次将博主的粉丝数量存入变量名为'fans'的列表中
fans=[12.5,23.1,38.5,15.8,14.1,11.4,18.2,16.5,22.6,32]

# 按照博主姓名的顺序,依次将博主的点赞收藏量存入变量名为‘likes’的列表中
likes=[18.2,15.2,222.7,71.5,8.6,70.5,107.7,128.3,109,31.7]

# 计算点赞收藏量与粉丝量的比值
# 1、定义一个空列表ratioList,存储点赞收藏量与粉丝量的比值
ratioList = []
# 2、统计点赞收藏量列表长度,并赋值给length
length = len(likes)
# 3、将点赞收藏量列表中的值除以对应粉丝量列表中的值,并使用round()函数取近似值并保留2位小数,存储到ratioList列表中
for i in range(length):
    ratio = round(likes[i]/fans[i],2)
    ratioList.append(ratio)

# 给柱状图添加x轴数据,数据内容是博主姓名列表:name
bar.add_xaxis(xaxis_data=name)

# 给柱状图添加y轴数据,数据内容是赞粉比列表:ratioList
bar.add_yaxis(series_name="赞粉比", y_axis=ratioList)

# 使用set_global_opts进行标题配置和x轴配置
# 初始化TitleOpts对象,设置标题名称为"候选博主粉丝与点赞的对比"
# 设置副标题名称为"筛选博主"
# 初始化一个AxisOpts对象,设置标签旋转45度
bar.set_global_opts(title_opts=opts.TitleOpts(title = "候选博主粉丝与点赞的对比",subtitle = "筛选博主"),
                            xaxis_opts=opts.AxisOpts(axislabel_opts={"rotate":45}))
#上面的这个函数调用实际上是一个优化之后的结果,如果两次调用这个函数,这个第一次调用的时候
# 添加的标题就会消失,因此这个只调用一次,但是这一次调用进行两个配置

# 绘制出这条柱状图,并保存到路径"/Users/Yoyo/Desktop/fans_likes.html"
bar.render(r"E:\quanjupeizhi.html")

进行图表的美化之后的效果:

5.重新思索

我们需要分别绘制出来每一个博主的点赞量的变化,这个我们想要使用一个看板实现切换效果,这个需要用到tab模块;

每一个用户这个绘制图形的最大值不同,我们需要统一,否则很容易直观上判断错误;

我想要说的和这个注释都在下面,自行学习喽:

# 从pyecharts.charts中导入Line和Tab
# 这个里面的tab就是去绘制这个切换的面板的
from pyecharts.charts import Line,Tab
# 从pyecharts中导入options模块并简写为opts
from pyecharts import options as opts
# 创建一个组件Tab对象,赋值给变量tab
tab = Tab()

# 近10篇笔记的点赞量数据存入列表likes中
likes1 =[71,429,150,2214,626,1597,773,10000,1947,2275]
likes2 =[299,720,97,995,1010,12000,862,2588,1015,8522]
likes3 =[113,102,619,3465,531,1426,921,3717,2598,526]
likes4 =[421,392,680,938,2013,493,1624,1204,4955,2021]
likes5 =[151,376,60,3785,277,46,325,3212,143,566]
likes6 =[479,8355,933,3610,4073,606,1824,568,7981,632]

# 将博主姓名存入列表name_list中
name_list = ["菠萝冰和夏天","Jeannie花","爱草莓的小挺","栀缘","钢琴上的音乐","Mu123"]
# 将博主10篇笔记的点赞量数据存入列表likes_list中
likes_list =[likes1,likes2,likes3,likes4,likes5,likes6]

# 将最近10篇笔记的名字存入列表并赋值给变量page
page = ["近10篇","近9篇","近8篇","近7篇","近6篇","近5篇","近4篇","近3篇","近2篇","近1篇"]

# 定义函数create_line(),获取博主名字name和点赞数likes,绘制折线图
def create_line(name,likes):

    # 创建折线图Line对象,并赋值给变量line,设置主题为"dark"
    # 这个theme就是一个颜色效果,有很多的类型,可以去官方文档了解
    line = Line(init_opts=opts.InitOpts(theme="dark"))

    # 给折线图添加x轴数据,数据内容是笔记名字:page
    line.add_xaxis(page)

    # 给折线图添加y轴数据,数据内容是点赞量列表:likes,图例名称为博主姓名:name,折线图样式为:平滑折线图
    line.add_yaxis(series_name=name, y_axis=likes,is_smooth=True)
                         

    # 用set_global_opts进行y轴配置,初始化一个AxisOpts对象,设置最大值为13000:
    # 这个地方的设置是因为如果有的数据量普遍偏小,我们没有办法通过这个高度进行判断
    #如果这个最大值是一样的,这个数据量小的就会特别低,我们可以治钢管的看到效果
    line.set_global_opts(yaxis_opts= opts.AxisOpts(max_ = 13000))

    # 返回折线图
    return line

# 定义一个计数器n,初始值为0
n = 0
# 循环name_list列表,依次将博主name提取出来
for name in name_list:
    # 将create_line()函数赋值给line,参数为name,和列表likes_list中第n项的值
    # 这个就是在绘制看板
    line = create_line(name, likes_list[n])
    # 使用tab.add()函数将折线图依次添加进看板中
    tab.add(line, name)
    # 计数器n加1
    n = n + 1

# 使用tab.render()展示折线图,并保存到/Users/Yoyo/中,文件名称为line.html
tab.render(r"E:\xia3.html")

最后看一眼效果:上面是可以进行切换的欧~~

标签:name,列表,柱状图,可视化,likes,博主,折线图,看板,opts
From: https://blog.csdn.net/binhyun/article/details/141403411

相关文章

  • 探索风扇产品模型的3D可视化魅力
    在这个科技日新月异的时代,每一个细微的创新都能为我们的生活带来前所未有的便捷与享受。今天,就让我们一起踏入一场视觉与科技的盛宴,探索风扇产品模型如何通过3D可视化技术,重新定义家居生活的舒适与美学。 想象一下,在炎炎夏日,你无需亲临实体店,只需轻点鼠标或滑动指尖,就能全方位......
  • 从企业管理到智慧城市:数据可视化大屏的多领域应用详解(AxureRP原型多行业案例演示)
    前言:在现代商业环境中,广泛应用于政府、金融、互联网、制造业等多个领域,数据驱动决策已成为企业提升竞争力的关键要素之一。无论是智慧城市的管理中心,还是企业的数据中心,都能见到其身影。数据可视化大屏,作为一种高效直观的数据展示工具,能够将复杂的数据转化为易于理解的图形和图表......
  • 柱图数据和折线图数据重叠在一起,如何处理???
    options={yAxis:[{type:'value',max:(value)=>value.max*2,},{type:'value',min:(value)=>value.max-((value.max-value.min)*2), max......
  • 企业市值排名3D可视化,重塑商业版图新维度
    在这个数据驱动的时代,每一个数字背后都蕴藏着无限的可能与机遇。企业市值,作为衡量企业综合实力与市场认可度的关键指标,其动态变化不仅是投资者关注的焦点,也是全球商业竞争格局的晴雨表。 当枯燥的数据表格被转化为生动的3D场景,全球数千家企业的市值排名不再只是冷冰冰的数字列......
  • 多元统计分析——基于R语言的单车使用情况可视化分析
    注:基于R语言的单车使用情况可视化分析为实验记录,存在不足,自行改进。一、提出问题(要解决或分析的问题)1、用户对共享单车的使用习惯,环境对共享单车运营带来的影响?2、共享单车的租赁量主要与哪些环境有关?二、数据来源及选取方法(数据完整可靠)        数......
  • 未来购物新境界:商品样机3D展示可视化引领潮流
    在这个日新月异的数字时代,科技的每一次飞跃都在深刻改变着我们的生活方式,尤其是购物体验。从传统的实体店选购到线上商城的便捷浏览,再到如今商品样机3D展示可视化的兴起,消费者正逐步踏入一个前所未有的沉浸式购物新时代。 想象一下,无需亲临现场,只需轻点鼠标或滑动屏幕,就能360度......
  • 【有源码】大数据背景下基于Python的旅游数据可视化分析与推荐系统k-means满意度分析
    注意:该项目只展示部分功能,如需了解,文末咨询即可。本文目录1.开发环境2系统设计2.1设计背景2.2设计内容3系统页面展示3.1展示页面3.2功能展示视频4更多推荐5部分功能代码5.1爬虫代码5.2词云代码1.开发环境开发语言:Python技术:Flask、协同过滤算法数......
  • 【乐吾乐大屏可视化组态编辑器】下载离线部署包
    下载离线部署包/组件包在线使用:https://v.le5le.com/ 导出为Zip文件Zip包主要用于大屏可视化平台快捷导入导出项目。如图下图所示,Zip包仅包含数据文件和图片文件,不包含js等依赖库。需要有一定开发能力者参考官方文档补充依赖库才能运行。官方下载需要开通vip。推荐下载......
  • 2.可视化web页面
    1.1.基本元素与布局_文本与标题1.2.基本元素与布局_图片与媒体1.3.基本元素与布局_表格2.1.交互组件_按钮与触发事件2.2.交互组件_输入框与表单2.3.交互组件_下拉框与选择器3.1.数据可视化_绘图与图表3.2.数据可视化_Matplotlib、Plotly等集成4.使用Markdown增强......
  • 基于Python的图书馆可视化管理系统【源码+LW+部署讲解】
    作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与各位高校教师、企业......