数据可视化-等高线-pandas透视图-seaborn热力图-桑基图(Sankey)
matplotlib绘制等高线
ref: https://matplotlib.org/api/_as_gen/matplotlib.pyplot.contour.html
1 | import numpy as np |
pandas透视图
1. 创建需要展示的数据
1 | import itertools |
输出:
layer_n activition seed results
0 1 tanh 11 4.261361
1 1 tanh 17 4.822595
2 1 tanh 19 4.929088
3 1 sigmod 11 6.698047
4 1 sigmod 17 7.020531
2. 绘制带误差的折线图展示训练结果
1 | # 绘制带误差的折线图,横轴为网络层数,纵轴为训练结果, |
3. 使用pandas透视图、seaborn热力图来展示
1 | # 创建透视图, |
ref:
pandas.pivot_table https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html
seaborn.lineplot https://seaborn.pydata.org/generated/seaborn.lineplot.html
seaborn.heatplot https://seaborn.pydata.org/generated/seaborn.heatmap.html
桑基图(Sankey)
1. 桑基图(Sankey)介绍
sankey图可用于数据从一系列节点到另一系列节点流入流出的可视化。
主要有两个基本概念:
- 节点 (nodes)
- 连接 (links): 源节点至目标节点之间的关系,每个连接包括三个元素:
- source: 源节点
- target: 目标节点
- value: 数据
ref: https://developers.google.com/chart/interactive/docs/gallery/sankey
2. 绘制桑基图(使用pyecharts)
常用的绘图库 matplotlib, seaborn 好像不支持桑基图, 这里使用了 pyecharts 。
这里 https://gallery.pyecharts.org/#/Sankey/sankey_base 有几个例子。
简单用法如下:
1 | import pandas as pd |
代码说明:
- pyecharts的桑基图对于原始数据的格式比较啰嗦,这里用 pandas 处理了一下,还可以修改一下去读取 csv 文件。
- pyecharts直接保存图片也比较麻烦,需要用 selenium 之类的工具,配置一大堆;还不如直接在浏览器截图。
使用 D3 绘制
D3 绘制桑基图貌似更简便一点,可惜不能用 python。
https://github.com/d3/d3-sankey
这里还有个在线可实时编辑版。
https://observablehq.com/@mbostock/flow-o-matic
厉害了!