主题河流图

终于是好像比较高级的图了hhhh但其实早在2008年都有比较出色的运用了,

2008年2月,《纽约时报》发布了一个最典型、最著名的河流图的例子《电影的衰退和流动:过去20年的电影票房收入》,描述了从1986年1月到2008年2月期间,所有电影的上映时间以及期间的周票房变化。在这个河流图中,流形状的宽度代表了某部电影的周票房,流形状的起始是由电影的上映时间决定的。颜色由电影的总票房决定,票房就是电影的“附加定量”,颜色越深代表了电影最终票房越高。

那么应该怎么去看这个看上去花里胡哨的河流图呢?

河流图(Streamgraph),有时候也叫做 主题河流图(ThemeRiver,是堆积面积图的一种变形,通过“流动”的形状来展示不同类别的数据随时间的变化情况。但不同于堆积面积图,河流图并不是将数据描绘在一个固定的、笔直的轴上(堆积图的基准线就是x轴),而是将数据分散到一个变化的中心基准线上(该基准线不一定是笔直的)

总结一下:应用场景就是当你需要探索几个不同的主题的热度(或其他统计量)随时间的演变趋势,并在同时期进行比较时,这个图就挺实用的。

你比如说,我想看看第二季度小米10、小米10青春版,红米k30pro、华为nova 7、荣耀30S、荣耀X10这六种手机在微博话题上的热度变化,我就可以用主题河流图来展示。

用的当然是pyecharts了,强大的可视化工具。

Code

def themeRiver():from pyecharts.charts import ThemeRiver# x_data = ["小米10_青春版", "小米10_pro", "红米k30pro", "华为nova 7", "荣耀X10", "荣耀30S"]x_data=["k30pro", 'mi10_young', 'mi10&pro']y_data = [['2020/3/1', 11, 'k30pro'], ['2020/3/2', 16, 'k30pro'], ['2020/3/3', 19, 'k30pro'], ['2020/3/4', 10, 'k30pro'],['2020/3/5', 31, 'k30pro'], ['2020/3/6', 11, 'k30pro'], ['2020/3/7', 12, 'k30pro'], ['2020/3/8', 9, 'k30pro'],['2020/3/9', 7, 'k30pro'], ['2020/3/10', 15, 'k30pro'], ['2020/3/11', 10, 'k30pro'],['2020/3/12', 21, 'k30pro'], ['2020/3/13', 13, 'k30pro'], ['2020/3/14', 9, 'k30pro'],['2020/3/15', 20, 'k30pro'], ['2020/3/16', 69, 'k30pro'], ['2020/3/17', 155, 'k30pro'],['2020/3/18', 92, 'k30pro'], ['2020/3/19', 110, 'k30pro'], ['2020/3/20', 25, 'k30pro'],['2020/3/21', 59, 'k30pro'], ['2020/3/22', 55, 'k30pro'], ['2020/3/23', 72, 'k30pro'],['2020/3/24', 530, 'k30pro'], ['2020/3/25', 135, 'k30pro'], ['2020/3/26', 75, 'k30pro'],['2020/3/27', 93, 'k30pro'], ['2020/3/28', 59, 'k30pro'], ['2020/3/29', 50, 'k30pro'],['2020/3/30', 92, 'k30pro'], ['2020/4/1', 27, 'k30pro'], ['2020/4/2', 26, 'k30pro'],['2020/4/3', 22, 'k30pro'], ['2020/4/4', 13, 'k30pro'], ['2020/4/5', 27, 'k30pro'], ['2020/4/6', 31, 'k30pro'],['2020/4/7', 45, 'k30pro'], ['2020/4/8', 27, 'k30pro'], ['2020/4/9', 29, 'k30pro'],['2020/4/10', 19, 'k30pro'], ['2020/4/11', 20, 'k30pro'], ['2020/4/12', 18, 'k30pro'],['2020/4/13', 23, 'k30pro'], ['2020/4/14', 23, 'k30pro'], ['2020/4/15', 52, 'k30pro'],['2020/4/16', 44, 'k30pro'], ['2020/4/17', 29, 'k30pro'], ......['2020/3/1', 1, 'mi10_young'], ['2020/3/2', 2, 'mi10_young'], ['2020/3/3', 2, 'mi10_young'], ['2020/3/4', 0, 'mi10_young'], ['2020/3/5', 1, 'mi10_young'], ['2020/3/6', 2, 'mi10_young'], ['2020/3/7', 3, 'mi10_young'], ['2020/3/8', 0, 'mi10_young'], ['2020/4/25', 4, 'mi10_young'], ['2020/4/26', 910, 'mi10_young'], ['2020/4/27', 921, 'mi10_young'], ['2020/4/28', 479, 'mi10_young'], ['2020/4/29', 288, 'mi10_young'], ['2020/4/30', 228, 'mi10_young'], ['2020/5/1', 91, 'mi10_young'], ['2020/5/2', 141, 'mi10_young'], ['2020/5/3', 85, 'mi10_young'], ['2020/5/4', 70, 'mi10_young'], ['2020/5/5', 83, 'mi10_young'], ['2020/5/6', 9, 'mi10_young'], ......['2020/6/10', 33, 'mi10&pro'], ['2020/6/11', 55, 'mi10&pro'], ['2020/6/12', 27, 'mi10&pro'],]tr= (ThemeRiver(init_opts=opts.InitOpts(width="1300px", height="700px")).add(series_name=x_data,data=y_data,singleaxis_opts=opts.SingleAxisOpts(pos_top="50", pos_bottom="50", type_="time"),).set_global_opts(tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="line"),legend_opts=opts.LegendOpts(pos_left='50%')))return tr

还在爬取补全的数据,所以代码里暂时就先是三个手机。从3.1到6.12的不完全数据。

其实这个图的整个代码结构是pyecharts一脉相承的风格,数据集的请求结构也相对而言不算复杂,只不过当你数据量一大起来,什么玩意儿都要难搞一些。

这里也再贴一下我整理数据结构的代码吧,就是从爬虫爬取到的标准时间得到['2020/03/01', 321, 'mi10_young']这个结构的过程:

'''
@file: themriver_pre.py
@time: 2020/7/3 15:36
@author:Seepen
'''import pandas as pd
from datetime import datetime
import numpy as npt = pd.read_csv('huawei_nova7.txt', encoding='utf-8')
pubtime=t.发布时间
# print(pubtime)
# l=[]#pub_time = pd.to_datetime(pubtime, format="%Y-%m-%d %H:%M")
df_time = pd.DatetimeIndex(pubtime)data=np.zeros((4,30), dtype='int')
print(data.shape)for i in df_time:m=i.monthd=i.dayif(d==31):d=30data[m-3][d-1]+=1l=[]
for m in range(3,7):for d in range(1,31):if(d==31):d=30l.append(["2020/"+str(m)+"/"+str(d), data[m-3][d-1], "huawei_nova7"])print(l)

是个笨办法。。但本来就是实验代码嘛,又不看这些脏活。
最后print出来的就是函数需要的数据结构:

[['2020/4/18', 159, 'huawei_nova7'], ['2020/4/19', 157, 'huawei_nova7'], ['2020/4/20', 178, 'huawei_nova7'], ['2020/4/21', 197, 'huawei_nova7'],
...]

直接贴到view的函数里即可。

最终画出的效果图:

打完收工。

pyecharts丨将主题的演变嵌入时间长河中——主题河流图相关推荐

  1. Python数据可视化 Pyecharts 制作 ThemeRiver 主题河流图

    大家好,我是Mr数据杨.设想一下,基本设置就像各个国家的基础设施,将三个国家的总况一览无遗,这为了解三国整体情况做好铺垫.而坐标轴设置,就如同时间线,沿着时间轴展现出三国历史的进程,决定了整个图表的时 ...

  2. embed 标签怎么嵌入pdf_联合Aspect-Sentiment主题嵌入的弱监督的情感分析(2020年10)

    论文: Weakly-Supervised Aspect-Based Sentiment Analysis via Joint Aspect-Sentiment Topic Embedding 作者: ...

  3. python画河流图_《Python数据可视化之Matplotlib与Pyecharts》之主题河流图

    11.7.2  不同类型商品销售情况分析 为了分析该企业不同类型商品的销售额情况,绘制了不同商品销售额的主题河流图,Python代码如下: # -*- coding: utf-8 -*- # -*- ...

  4. 关于EasyUI DataGrid行编辑时嵌入时间控件

    本人做一个名为"安徽中控"项目时,为快速开发基础数据增删改模块,遂采用EasyUIDatagrid将所有增删改查的操作都集中于表格中,并且所有增删改查操作都集中于泛型对象,从而不必 ...

  5. 如何快速实现分布式定时器丨红黑树|跳表|堆|时间轮|缓存|锁|事务|架构|高性能|消息队列丨C/C++Linux服务器开发丨C++后端开发

    如何快速实现分布式定时器 视频讲解如下,点击观看: 如何快速实现分布式定时器丨红黑树|跳表|堆|时间轮|缓存|锁|事务|架构|高性能|消息队列丨C/C++Linux服务器开发丨C++后端开发丨中间件 ...

  6. Android 的主题的演变

    目前比较流行的主题样式 (4.0以后的主题) AppTheme Theme.AppCompat 例如: <style name="AppTheme" parent=" ...

  7. 系统主题修改桌面嵌入html,更换主题桌面主题 Win7桌面动态主题怎么更换

    Win10怎么更换主题,win10怎么更换桌面背景 Win10系统更换主题方法 在桌面空白区域点击右键,选择"个性化". 选择你喜欢的主题,点击"下载".下载后 ...

  8. 需求分析与建模最佳实践_社交媒体和主题建模:如何在实践中分析帖子

    需求分析与建模最佳实践 主题建模的实际使用 (Practical use of topic modeling) There is a substantial amount of data genera ...

  9. lda主题模型的可视化_把LDA主题模型作为自己的硕士课题,有什么可以做的?

    经典的LDA主题模型实现了文本的软聚类的工作,将文档转化为基于主题的数值向量,每个维度上的主题概率取值就是对特定主题的聚类中心的隶属度.由于LDA主题模型提出较早,所以作为基础模型有了很多改进和创新, ...

最新文章

  1. OCR光学字符识别方法汇总(附开源代码)
  2. JavaScript面向对象编程(1)-- 基础
  3. Java源码:java.lang.reflect反射之AccessibleObject、ReflectionFactory、Filed、Method、Constructor类
  4. 线程组之间的JMeter传递变量
  5. openglshader实现虚拟场景_虚拟演播室设计原则
  6. 【MATLAB】xx操作总结【更新中】
  7. 信安教程第二版-第20章数据库系统安全
  8. yjv是电缆还是电线_2019最新电缆载流量对照表,不用每次都百度了!
  9. 14-----表单输入绑定
  10. Perl 监控 tomcat,可以安心回家过年了
  11. Windows Server 2008 R2远程用户数设置
  12. mysql 导入sql文件的一点问题
  13. servlet到底是什么?
  14. 我没有时间 I Don't Have Time?
  15. ae合成设置快捷键_AE中常用的快捷键,你了解多少?(五
  16. FS00702型酒精传感器
  17. python乘法符号手写_利用Python自动生成小学生加减乘除口算考试题卷,不再为手写算术题烦恼!...
  18. 前端模板template-web简单使用
  19. 地质体剖面从构建到Web三维展示
  20. 百度贴吧头像上传无尺寸限制

热门文章

  1. HTML 中插入视频播放窗口
  2. Python pip换源所有方法
  3. 【STM32】电源控制、低功耗模式(实例:待机模式)
  4. 小程序发送模板消息小结
  5. 爱奇艺视频wasm转js分析,cmd5x算法脱离环境限制
  6. mysql下SQL注入截取字符串常用函数mid(),substr(),left()
  7. dubbo远程调用接口
  8. 波动方程有限差分法c语言,二维波动方程的有限差分法.pdf
  9. phpexcel导出 自定义数据 分页数据 设置单元格宽 合并单元格
  10. 参与腾讯云数据迁移与视频转码,就有机会赢1000元京东卡!