实验环境:
- windows 10
- Vscode
- Python (3.7.4)
- Pyecharts (1.7.1)
准备工作:
部分数据源所在的文件类型为 "json",这里介绍怎样导入并读取 json 文件中的数据
# 导入库
import json
# data.json 为虚拟数据
# 打开json文件,设置编码格式
with open("data.json", "r", encoding="utf-8") as d:
# 读取数据
j = json.load(d)
案例:使用 data.json文件绘制树图、矩形树图
数据文件:data.json
// data.json
{
"name": "flare",
"children": [
{
"name": "flex",
"children": [{ "name": "FlareVis", "value": 4116 }]
},
{
"name": "scale",
"children": [
{ "name": "IScaleMap", "value": 2105 },
{ "name": "LinearScale", "value": 1316 },
{ "name": "LogScale", "value": 3151 },
{ "name": "OrdinalScale", "value": 3770 },
{ "name": "QuantileScale", "value": 2435 },
{ "name": "QuantitativeScale", "value": 4839 },
{ "name": "RootScale", "value": 1756 },
{ "name": "Scale", "value": 4268 },
{ "name": "ScaleType", "value": 1821 },
{ "name": "TimeScale", "value": 5833 }
]
},
{
"name": "display",
"children": [{ "name": "DirtySprite", "value": 8833 }]
}
]
}
树图:
思路:
- 导入相关库
- 读取数据
- 可视化
- 美化图形
步骤:
导入相关库,读取数据
# 导入库
from pyecharts import options as opts
from pyecharts.charts import Tree
# 导入JSON库包
import json
# 打开json文件,设置编码格式为:utf-8
with open("data.json", "r", encoding="utf-8") as d:
# 读取数据
j = json.load(d)
可视化
(
Tree()
.add(
"",
[j],
collapse_interval=2,
orient="TB", # 上下方向,T-top,B-bottom
# 标签
label_opts=opts.LabelOpts(
position="top", # 标签位置在圆的上面
horizontal_align="right", # 标签水平向右对齐
vertical_align="middle", # 标签垂直居中
rotate=-90, # 标签顺时针翻转90度
),
)
# 输出html文件
.render("tree_top_bottom.html")
)
整理代码,美化图形
# 导入库
from pyecharts import options as opts
from pyecharts.charts import Tree
# 导入JSON库包
import json
# 打开json文件,设置编码格式为:utf-8
with open("data.json", "r", encoding="utf-8") as d:
# 读取数据
j = json.load(d)
(
Tree()
.add(
"",
[j],
collapse_interval=2,
orient="TB", # 上下方向,T-top,B-bottom
# 标签
label_opts=opts.LabelOpts(
position="top", # 标签位置在圆的上面
horizontal_align="right", # 标签水平向右对齐
vertical_align="middle", # 标签垂直居中
rotate=-90, # 标签顺时针翻转90度
),
)
# 标题
.set_global_opts(title_opts=opts.TitleOpts(title="树图", subtitle="李后文"))
# 输出html文件
.render("tree_top_bottom.html")
)
效果:

矩形树图:
思路:
- 导入相关库
- 读取数据
- 可视化
- 美化图形
步骤:
导入相关库,读取数据
# 导入库
from pyecharts import options as opts
from pyecharts.charts import TreeMap
# 导入JSON库包
import json
# 打开json文件,设置编码格式为:utf-8
with open("data.json", encoding="utf-8") as d:
# 读取数据
j = json.load(d)
可视化
(
TreeMap()
.add(
"",
[j],
visible_min=300, # 当前层级的最小value值为:300
leaf_depth=3, # 展示3个图层
label_opts=opts.LabelOpts(position="inside"), # 标签在中间位置
)
# 输出html文件
.render("TreeMap.html")
)
整理代码,美化图形
# 导入库
from pyecharts import options as opts
from pyecharts.charts import TreeMap
# 导入JSON库包
import json
# 打开json文件,设置编码格式为:utf-8
with open("data.json", encoding="utf-8") as d:
# 读取数据
j = json.load(d)
(
TreeMap()
.add(
"",
[j],
visible_min=300, # 当前层级的最小value值为:300
leaf_depth=3, # 展示3个图层
label_opts=opts.LabelOpts(position="inside"), # 标签在中间位置
)
# 标题
.set_global_opts(title_opts=opts.TitleOpts(title="矩形树图", subtitle="李后文"))
# 输出html文件
.render("TreeMap.html")
)
效果:

案例:绘制鸢尾花数据的相关性矩阵
数据文件:iris.csv
散点矩阵图:
这个图只能实现散点图矩阵的效果,并不能代表这就是散点矩阵图。以后若有机会实现,会重新更新代码。
更方便的绘图方法是使用:matplotlib + seaborn 库包
思路:
- 导入相关库
- 读取数据
- 可视化
- 美化图形
步骤:
导入相关库,读取数据
# 导入库
import pyecharts.options as opts
from pyecharts.charts import Scatter, Grid
import pandas as pd
# 导入数据
iris = pd.read_csv("iris.csv", encoding='utf-8')
# x轴
x = [x for x in range(1, 51)]
# y轴数据
y1 = iris.iloc[:50, 1].tolist()
y2 = iris.iloc[50:100, 1].tolist()
y3 = iris.iloc[100:150, 1].tolist()
y4 = iris.iloc[:50, 2].tolist()
y5 = iris.iloc[50:100, 2].tolist()
y6 = iris.iloc[100:150, 2].tolist()
y7 = iris.iloc[:50, 3].tolist()
y8 = iris.iloc[50:100, 3].tolist()
y9 = iris.iloc[100:150, 3].tolist()
y10 = iris.iloc[:50, 4].tolist()
y11 = iris.iloc[50:100, 4].tolist()
y12 = iris.iloc[100:150, 4].tolist()
可视化
# 图形一
scatter1 = (
Scatter()
.add_xaxis(xaxis_data=x)
.add_yaxis(
"setosa", # 系列名
y_axis=y1, # y轴数据
label_opts=opts.LabelOpts(is_show=False), # 不在图形上显示数值
)
.add_yaxis(
"versicolor",
y_axis=y2,
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
"virginica",
y_axis=y3,
label_opts=opts.LabelOpts(is_show=False),
)
.set_global_opts(
# 标题
title_opts=opts.TitleOpts(title="Scatter_Sepal.Length"),
xaxis_opts=opts.AxisOpts(
type_="value", # x轴类型
splitline_opts=opts.SplitLineOpts(is_show=True)), #开启分割线
yaxis_opts=opts.AxisOpts(
type_="value", # y轴类型
is_scale=True, # y轴初始值不按照从0开始
splitline_opts=opts.SplitLineOpts(is_show=True)),
)
)
scatter2 = (
Scatter()
.add_xaxis(xaxis_data=x)
.add_yaxis(
"setosa",
y_axis=y4,
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
"versicolor",
y_axis=y5,
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
"virginica",
y_axis=y6,
label_opts=opts.LabelOpts(is_show=False),
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="Scatter_Sepal.Width", pos_right="right"), # 标题位置位于右侧
xaxis_opts=opts.AxisOpts(
type_="value",
splitline_opts=opts.SplitLineOpts(is_show=True)),
yaxis_opts=opts.AxisOpts(
type_="value",
is_scale=True,
splitline_opts=opts.SplitLineOpts(is_show=True)),
)
)
scatter3 = (
Scatter()
.add_xaxis(xaxis_data=x)
.add_yaxis(
"setosa",
y_axis=y7,
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
"versicolor",
y_axis=y8,
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
"virginica",
y_axis=y9,
label_opts=opts.LabelOpts(is_show=False),
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="Scatter_Petal.Length", pos_bottom="bottom"), # 标题位置位于底部
xaxis_opts=opts.AxisOpts(
type_="value",
splitline_opts=opts.SplitLineOpts(is_show=True)),
yaxis_opts=opts.AxisOpts(
type_="value",
is_scale=True,
splitline_opts=opts.SplitLineOpts(is_show=True)),
)
)
scatter4 = (
Scatter()
.add_xaxis(xaxis_data=x)
.add_yaxis(
"setosa",
y_axis=y10,
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
"versicolor",
y_axis=y11,
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
"virginica",
y_axis=y12,
label_opts=opts.LabelOpts(is_show=False),
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="Scatter_Petal.Width", pos_bottom="bottom", pos_right="right"), # 标题位置位于右下角
xaxis_opts=opts.AxisOpts(
type_="value",
splitline_opts=opts.SplitLineOpts(is_show=True)),
yaxis_opts=opts.AxisOpts(
type_="value",
is_scale=True,
splitline_opts=opts.SplitLineOpts(is_show=True)),
)
)
(
Grid()
# 每个图形所在的位置
.add(scatter1, grid_opts=opts.GridOpts(pos_bottom="55%", pos_right="55%")) # 左上
.add(scatter2, grid_opts=opts.GridOpts(pos_bottom="55%", pos_left="55%")) # 右上
.add(scatter3, grid_opts=opts.GridOpts(pos_top="55%", pos_right="55%")) # 左下
.add(scatter4, grid_opts=opts.GridOpts(pos_top="55%", pos_left="55%")) # 右下
.render("Scatter.html")
)
效果:

案例:在地图上用圆点标出各省的销售额数据
数据:
province = ['广东', '湖北', '湖南', '四川', '重庆', '黑龙江', '浙江', '山西', '河北', '安徽', '河南', '山东', '西藏']
data = [(i, random.randint(50, 150)) for i in province]
地图:
思路:
- 导入相关库
- 读取数据
- 可视化
- 美化图形
步骤:
导入相关库,读取数据
# 导入库
from pyecharts import options as opts
from pyecharts.charts import Map
import random
# 数据
province = ['广东', '湖北', '湖南', '四川', '重庆', '黑龙江',
'浙江', '山西', '河北', '安徽', '河南', '山东', '西藏']
data = [(i, random.randint(50, 150)) for i in province]
可视化
(
Map()
.add(
"销售额",
data_pair=data, # 数据
maptype="china", # 地图为中国地图
)
.render("map_sales.html")
)
整理代码,美化图形
# 导入库
from pyecharts import options as opts
from pyecharts.charts import Map
import random
# 数据
province = ['广东', '湖北', '湖南', '四川', '重庆', '黑龙江',
'浙江', '山西', '河北', '安徽', '河南', '山东', '西藏']
data = [(i, random.randint(50, 150)) for i in province]
(
Map()
.add(
"销售额",
data_pair=data, # 数据
maptype="china", # 地图为中国地图
)
# 标题
.set_global_opts(
title_opts=opts.TitleOpts(title="销售额数据", subtitle="李后文")
)
.render("map_sales.html")
)
效果:

案例:绘制地理热点图展示某连锁企业在湖北省各城市的门店数
数据:
province = ['武汉', '十堰', '鄂州', '宜昌', '荆州', '孝感', '黄石', '咸宁', '仙桃']
data = [(i, random.randint(50, 150)) for i in province]
地理热点图:
思路:
- 导入相关库
- 读取数据
- 可视化
- 美化图形
步骤:
导入相关库,读取数据
# 导入库
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import GeoType
import random
# 数据
province = ['武汉', '十堰', '鄂州', '宜昌', '荆州', '孝感', '黄石', '咸宁', '仙桃']
data = [(i, random.randint(50, 150)) for i in province]
可视化
(
Geo()
.add_schema(maptype="湖北") # 地图为湖北地图
.add(
"门店数",
data,
type_=GeoType.HEATMAP, # Geo图类型为热点图
)
.render("HeatMap.html")
)
整理代码,美化图形
# 导入库
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import GeoType
import random
# 数据
province = ['武汉', '十堰', '鄂州', '宜昌', '荆州', '孝感', '黄石', '咸宁', '仙桃']
data = [(i, random.randint(50, 150)) for i in province]
(
Geo()
.add_schema(maptype="湖北") # 地图为湖北地图
.add(
"门店数",
data,
type_=GeoType.HEATMAP, # Geo图类型为热点图
)
# 标题
.set_global_opts(
title_opts=opts.TitleOpts(title="某连锁企业在湖北省各城市的门店数", subtitle="李后文"),
visualmap_opts=opts.VisualMapOpts(min_=50, max_=150), # 视觉映射区间
)
.render("HeatMap.html")
)
效果:

案例:绘制词云图
数据文件:word_data.csv
词云图:
思路:
- 导入相关库
- 读取数据
- 可视化
- 美化图形
步骤:
导入相关库,读取数据
# 导入库
from pyecharts import options as opts
from pyecharts.charts import WordCloud
import pandas as pd
# 导入并获取数据
word_data = pd.read_csv("word_data.csv", encoding='utf-8')
data = word_data.iloc[:, [3, 1]].values.tolist()
可视化
(
WordCloud()
.add("",
data_pair=data, # 系列数据
shape="circle", # 词云图轮廓
word_size_range=[10, 80], # 词的大小范围
)
.render("wordcloud.html")
)
整理代码,美化图形
# 导入库
from pyecharts import options as opts
from pyecharts.charts import WordCloud
import pandas as pd
# 导入并获取数据
word_data = pd.read_csv("word_data.csv", encoding='utf-8')
data = word_data.iloc[:, [3, 1]].values.tolist()
(
WordCloud()
.add("",
data_pair=data, # 系列数据
shape="circle", # 词云图轮廓
word_size_range=[10, 80], # 词的大小范围
)
# 标题
.set_global_opts(
title_opts=opts.TitleOpts(title="词云图", subtitle="李后文")
)
.render("wordcloud.html")
)
效果:

案例 :绘制主题河流图
数据:
# 数据
datax = ['分支1', '分支2', '分支3', '分支4', '分支5', '分支6']
datay = [
['2015/11/08', 10, '分支1'], ['2015/11/09', 15, '分支1'], ['2015/11/10', 35, '分支1'],
['2015/11/14', 7, '分支1'], ['2015/11/15', 2, '分支1'], ['2015/11/16', 17, '分支1'],
['2015/11/17', 33, '分支1'], ['2015/11/18', 40, '分支1'], ['2015/11/19', 32, '分支1'],
['2015/11/20', 26, '分支1'], ['2015/11/21', 35, '分支1'], ['2015/11/22', 40, '分支1'],
['2015/11/23', 32, '分支1'], ['2015/11/24', 26, '分支1'], ['2015/11/25', 22, '分支1'],
['2015/11/08', 35, '分支2'], ['2015/11/09', 36, '分支2'], ['2015/11/10', 37, '分支2'],
['2015/11/11', 22, '分支2'], ['2015/11/12', 24, '分支2'], ['2015/11/13', 26, '分支2'],
['2015/11/14', 34, '分支2'], ['2015/11/15', 21, '分支2'], ['2015/11/16', 18, '分支2'],
['2015/11/17', 45, '分支2'], ['2015/11/18', 32, '分支2'], ['2015/11/19', 35, '分支2'],
['2015/11/20', 30, '分支2'], ['2015/11/21', 28, '分支2'], ['2015/11/22', 27, '分支2'],
['2015/11/23', 26, '分支2'], ['2015/11/24', 15, '分支2'], ['2015/11/25', 30, '分支2'],
['2015/11/26', 35, '分支2'], ['2015/11/27', 42, '分支2'], ['2015/11/28', 42, '分支2'],
['2015/11/08', 21, '分支3'], ['2015/11/09', 25, '分支3'], ['2015/11/10', 27, '分支3'],
['2015/11/11', 23, '分支3'], ['2015/11/12', 24, '分支3'], ['2015/11/13', 21, '分支3'],
['2015/11/14', 35, '分支3'], ['2015/11/15', 39, '分支3'], ['2015/11/16', 40, '分支3'],
['2015/11/17', 36, '分支3'], ['2015/11/18', 33, '分支3'], ['2015/11/19', 43, '分支3'],
['2015/11/20', 40, '分支3'], ['2015/11/21', 34, '分支3'], ['2015/11/22', 28, '分支3'],
['2015/11/14', 7, '分支4'], ['2015/11/15', 2, '分支4'], ['2015/11/16', 17, '分支4'],
['2015/11/17', 33, '分支4'], ['2015/11/18', 40, '分支4'], ['2015/11/19', 32, '分支4'],
['2015/11/20', 26, '分支4'], ['2015/11/21', 35, '分支4'], ['2015/11/22', 40, '分支4'],
['2015/11/23', 32, '分支4'], ['2015/11/24', 26, '分支4'], ['2015/11/25', 22, '分支4'],
['2015/11/26', 16, '分支4'], ['2015/11/27', 22, '分支4'], ['2015/11/28', 10, '分支4'],
['2015/11/08', 10, '分支5'], ['2015/11/09', 15, '分支5'], ['2015/11/10', 35, '分支5'],
['2015/11/11', 38, '分支5'], ['2015/11/12', 22, '分支5'], ['2015/11/13', 16, '分支5'],
['2015/11/14', 7, '分支5'], ['2015/11/15', 2, '分支5'], ['2015/11/16', 17, '分支5'],
['2015/11/17', 33, '分支5'], ['2015/11/18', 40, '分支5'], ['2015/11/19', 32, '分支5'],
['2015/11/20', 26, '分支5'], ['2015/11/21', 35, '分支5'], ['2015/11/22', 4, '分支5'],
['2015/11/23', 32, '分支5'], ['2015/11/24', 26, '分支5'], ['2015/11/25', 22, '分支5'],
['2015/11/26', 16, '分支5'], ['2015/11/27', 22, '分支5'], ['2015/11/28', 10, '分支5'],
['2015/11/08', 10, '分支6'], ['2015/11/09', 15, '分支6'], ['2015/11/10', 35, '分支6'],
['2015/11/11', 38, '分支6'], ['2015/11/12', 22, '分支6'], ['2015/11/13', 16, '分支6'],
['2015/11/14', 7, '分支6'], ['2015/11/15', 2, '分支6'], ['2015/11/16', 17, '分支6'],
['2015/11/17', 33, '分支6'], ['2015/11/18', 4, '分支6'], ['2015/11/19', 32, '分支6'],
['2015/11/20', 26, '分支6'], ['2015/11/21', 35, '分支6'], ['2015/11/22', 40, '分支6'],
['2015/11/23', 32, '分支6'], ['2015/11/24', 26, '分支6'], ['2015/11/25', 22, '分支6']
]
主题河流图:
思路:
- 导入相关库
- 读取数据
- 可视化
- 美化图形
步骤:
导入相关库,读取数据
# 导入库
import pyecharts.options as opts
from pyecharts.charts import ThemeRiver
# 数据
datax = ['分支1', '分支2', '分支3', '分支4', '分支5', '分支6']
datay = [
['2015/11/08', 10, '分支1'], ['2015/11/09',
15, '分支1'], ['2015/11/10', 35, '分支1'],
['2015/11/14', 7, '分支1'], ['2015/11/15', 2, '分支1'], ['2015/11/16', 17, '分支1'],
['2015/11/17', 33, '分支1'], ['2015/11/18',
40, '分支1'], ['2015/11/19', 32, '分支1'],
['2015/11/20', 26, '分支1'], ['2015/11/21',
35, '分支1'], ['2015/11/22', 40, '分支1'],
['2015/11/23', 32, '分支1'], ['2015/11/24',
26, '分支1'], ['2015/11/25', 22, '分支1'],
['2015/11/08', 35, '分支2'], ['2015/11/09',
36, '分支2'], ['2015/11/10', 37, '分支2'],
['2015/11/11', 22, '分支2'], ['2015/11/12',
24, '分支2'], ['2015/11/13', 26, '分支2'],
['2015/11/14', 34, '分支2'], ['2015/11/15',
21, '分支2'], ['2015/11/16', 18, '分支2'],
['2015/11/17', 45, '分支2'], ['2015/11/18',
32, '分支2'], ['2015/11/19', 35, '分支2'],
['2015/11/20', 30, '分支2'], ['2015/11/21',
28, '分支2'], ['2015/11/22', 27, '分支2'],
['2015/11/23', 26, '分支2'], ['2015/11/24',
15, '分支2'], ['2015/11/25', 30, '分支2'],
['2015/11/26', 35, '分支2'], ['2015/11/27',
42, '分支2'], ['2015/11/28', 42, '分支2'],
['2015/11/08', 21, '分支3'], ['2015/11/09',
25, '分支3'], ['2015/11/10', 27, '分支3'],
['2015/11/11', 23, '分支3'], ['2015/11/12',
24, '分支3'], ['2015/11/13', 21, '分支3'],
['2015/11/14', 35, '分支3'], ['2015/11/15',
39, '分支3'], ['2015/11/16', 40, '分支3'],
['2015/11/17', 36, '分支3'], ['2015/11/18',
33, '分支3'], ['2015/11/19', 43, '分支3'],
['2015/11/20', 40, '分支3'], ['2015/11/21',
34, '分支3'], ['2015/11/22', 28, '分支3'],
['2015/11/14', 7, '分支4'], ['2015/11/15', 2, '分支4'], ['2015/11/16', 17, '分支4'],
['2015/11/17', 33, '分支4'], ['2015/11/18',
40, '分支4'], ['2015/11/19', 32, '分支4'],
['2015/11/20', 26, '分支4'], ['2015/11/21',
35, '分支4'], ['2015/11/22', 40, '分支4'],
['2015/11/23', 32, '分支4'], ['2015/11/24',
26, '分支4'], ['2015/11/25', 22, '分支4'],
['2015/11/26', 16, '分支4'], ['2015/11/27',
22, '分支4'], ['2015/11/28', 10, '分支4'],
['2015/11/08', 10, '分支5'], ['2015/11/09',
15, '分支5'], ['2015/11/10', 35, '分支5'],
['2015/11/11', 38, '分支5'], ['2015/11/12',
22, '分支5'], ['2015/11/13', 16, '分支5'],
['2015/11/14', 7, '分支5'], ['2015/11/15', 2, '分支5'], ['2015/11/16', 17, '分支5'],
['2015/11/17', 33, '分支5'], ['2015/11/18',
40, '分支5'], ['2015/11/19', 32, '分支5'],
['2015/11/20', 26, '分支5'], ['2015/11/21', 35, '分支5'], ['2015/11/22', 4, '分支5'],
['2015/11/23', 32, '分支5'], ['2015/11/24',
26, '分支5'], ['2015/11/25', 22, '分支5'],
['2015/11/26', 16, '分支5'], ['2015/11/27',
22, '分支5'], ['2015/11/28', 10, '分支5'],
['2015/11/08', 10, '分支6'], ['2015/11/09',
15, '分支6'], ['2015/11/10', 35, '分支6'],
['2015/11/11', 38, '分支6'], ['2015/11/12',
22, '分支6'], ['2015/11/13', 16, '分支6'],
['2015/11/14', 7, '分支6'], ['2015/11/15', 2, '分支6'], ['2015/11/16', 17, '分支6'],
['2015/11/17', 33, '分支6'], ['2015/11/18', 4, '分支6'], ['2015/11/19', 32, '分支6'],
['2015/11/20', 26, '分支6'], ['2015/11/21',
35, '分支6'], ['2015/11/22', 40, '分支6'],
['2015/11/23', 32, '分支6'], ['2015/11/24', 26, '分支6'], ['2015/11/25', 22, '分支6']
]
可视化
(
ThemeRiver()
.add(
series_name=datax, # 系列名称
data=datay, # 系列数据
# 轴配置项
singleaxis_opts=opts.SingleAxisOpts(
pos_top="50", pos_bottom="50", pos_left="100", type_="time"
)
.render("Theme_river.html")
)
整理代码,美化图形
# 导入库
import pyecharts.options as opts
from pyecharts.charts import ThemeRiver
# 数据
datax = ['分支1', '分支2', '分支3', '分支4', '分支5', '分支6']
datay = [
['2015/11/08', 10, '分支1'], ['2015/11/09',
15, '分支1'], ['2015/11/10', 35, '分支1'],
['2015/11/14', 7, '分支1'], ['2015/11/15', 2, '分支1'], ['2015/11/16', 17, '分支1'],
['2015/11/17', 33, '分支1'], ['2015/11/18',
40, '分支1'], ['2015/11/19', 32, '分支1'],
['2015/11/20', 26, '分支1'], ['2015/11/21',
35, '分支1'], ['2015/11/22', 40, '分支1'],
['2015/11/23', 32, '分支1'], ['2015/11/24',
26, '分支1'], ['2015/11/25', 22, '分支1'],
['2015/11/08', 35, '分支2'], ['2015/11/09',
36, '分支2'], ['2015/11/10', 37, '分支2'],
['2015/11/11', 22, '分支2'], ['2015/11/12',
24, '分支2'], ['2015/11/13', 26, '分支2'],
['2015/11/14', 34, '分支2'], ['2015/11/15',
21, '分支2'], ['2015/11/16', 18, '分支2'],
['2015/11/17', 45, '分支2'], ['2015/11/18',
32, '分支2'], ['2015/11/19', 35, '分支2'],
['2015/11/20', 30, '分支2'], ['2015/11/21',
28, '分支2'], ['2015/11/22', 27, '分支2'],
['2015/11/23', 26, '分支2'], ['2015/11/24',
15, '分支2'], ['2015/11/25', 30, '分支2'],
['2015/11/26', 35, '分支2'], ['2015/11/27',
42, '分支2'], ['2015/11/28', 42, '分支2'],
['2015/11/08', 21, '分支3'], ['2015/11/09',
25, '分支3'], ['2015/11/10', 27, '分支3'],
['2015/11/11', 23, '分支3'], ['2015/11/12',
24, '分支3'], ['2015/11/13', 21, '分支3'],
['2015/11/14', 35, '分支3'], ['2015/11/15',
39, '分支3'], ['2015/11/16', 40, '分支3'],
['2015/11/17', 36, '分支3'], ['2015/11/18',
33, '分支3'], ['2015/11/19', 43, '分支3'],
['2015/11/20', 40, '分支3'], ['2015/11/21',
34, '分支3'], ['2015/11/22', 28, '分支3'],
['2015/11/14', 7, '分支4'], ['2015/11/15', 2, '分支4'], ['2015/11/16', 17, '分支4'],
['2015/11/17', 33, '分支4'], ['2015/11/18',
40, '分支4'], ['2015/11/19', 32, '分支4'],
['2015/11/20', 26, '分支4'], ['2015/11/21',
35, '分支4'], ['2015/11/22', 40, '分支4'],
['2015/11/23', 32, '分支4'], ['2015/11/24',
26, '分支4'], ['2015/11/25', 22, '分支4'],
['2015/11/26', 16, '分支4'], ['2015/11/27',
22, '分支4'], ['2015/11/28', 10, '分支4'],
['2015/11/08', 10, '分支5'], ['2015/11/09',
15, '分支5'], ['2015/11/10', 35, '分支5'],
['2015/11/11', 38, '分支5'], ['2015/11/12',
22, '分支5'], ['2015/11/13', 16, '分支5'],
['2015/11/14', 7, '分支5'], ['2015/11/15', 2, '分支5'], ['2015/11/16', 17, '分支5'],
['2015/11/17', 33, '分支5'], ['2015/11/18',
40, '分支5'], ['2015/11/19', 32, '分支5'],
['2015/11/20', 26, '分支5'], ['2015/11/21', 35, '分支5'], ['2015/11/22', 4, '分支5'],
['2015/11/23', 32, '分支5'], ['2015/11/24',
26, '分支5'], ['2015/11/25', 22, '分支5'],
['2015/11/26', 16, '分支5'], ['2015/11/27',
22, '分支5'], ['2015/11/28', 10, '分支5'],
['2015/11/08', 10, '分支6'], ['2015/11/09',
15, '分支6'], ['2015/11/10', 35, '分支6'],
['2015/11/11', 38, '分支6'], ['2015/11/12',
22, '分支6'], ['2015/11/13', 16, '分支6'],
['2015/11/14', 7, '分支6'], ['2015/11/15', 2, '分支6'], ['2015/11/16', 17, '分支6'],
['2015/11/17', 33, '分支6'], ['2015/11/18', 4, '分支6'], ['2015/11/19', 32, '分支6'],
['2015/11/20', 26, '分支6'], ['2015/11/21',
35, '分支6'], ['2015/11/22', 40, '分支6'],
['2015/11/23', 32, '分支6'], ['2015/11/24', 26, '分支6'], ['2015/11/25', 22, '分支6']
]
(
ThemeRiver()
.add(
series_name=datax, # 系列名称
data=datay, # 系列数据
# 轴配置项
singleaxis_opts=opts.SingleAxisOpts(
pos_top="50", pos_bottom="50", pos_left="100", type_="time"
)
)
.set_global_opts(
# 标题
title_opts=opts.TitleOpts(title="主题河流图", subtitle="李后文"),
# 提示框在坐标轴以直线指示器触发
tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="line")
)
.render("Theme_river.html")
)
效果:
