基本图表
饼图
# 虚假数据
cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']
data = [123, 153, 89, 107, 98, 23]
pie = (Pie()
.add('', [list(z) for z in zip(cate, data)])
)
pie.render_notebook()
漏斗图
# 虚假数据
cate = ['访问', '注册', '加入购物车', '提交订单', '付款成功']
data = [30398, 15230, 10045, 3109, 1698]
funnel = (Funnel()
.add("", [list(z) for z in zip(cate, data)])
)
funnel.render_notebook()
仪表盘¶
gauge = (Gauge()
.add("", [('转化率',34)])
)
gauge.render_notebook()
水球图
liquid = (Liquid()
.add("", [0.52, 0.44])
)
liquid.render_notebook()
日历图
import math
# 虚假数据
begin = datetime.date(2019, 1, 1)
end = datetime.date(2019, 12, 31)
data = [[str(begin + datetime.timedelta(days=i)), abs(math.cos(i/100))* random.randint(1000, 1200)]
for i in range((end - begin).days + 1)]
calendar = (
Calendar()
.add("", data, calendar_opts=opts.CalendarOpts(range_="2019"))
)
calendar.render_notebook()
关系图
nodes = [
{"name": "结点1", "symbolSize": 1},
{"name": "结点2", "symbolSize": 2},
{"name": "结点3", "symbolSize": 3},
{"name": "结点4", "symbolSize": 4},
{"name": "结点5", "symbolSize": 5},
{"name": "结点6", "symbolSize": 6},
{"name": "结点7", "symbolSize": 7},
{"name": "结点8", "symbolSize": 8},
]
links = [{'source': '结点1', 'target': '结点2'},
{'source': '结点1', 'target': '结点3'},
{'source': '结点1', 'target': '结点4'},
{'source': '结点2', 'target': '结点1'},
{'source': '结点3', 'target': '结点4'},
{'source': '结点3', 'target': '结点5'},
{'source': '结点3', 'target': '结点6'},
{'source': '结点4', 'target': '结点1'},
{'source': '结点4', 'target': '结点2'},
{'source': '结点4', 'target': '结点7'},
{'source': '结点4', 'target': '结点8'},
{'source': '结点5', 'target': '结点1'},
{'source': '结点5', 'target': '结点4'},
{'source': '结点5', 'target': '结点6'},
{'source': '结点5', 'target': '结点7'},
{'source': '结点5', 'target': '结点8'},
{'source': '结点6', 'target': '结点1'},
{'source': '结点6', 'target': '结点7'},
{'source': '结点6', 'target': '结点8'},
{'source': '结点7', 'target': '结点1'},
{'source': '结点7', 'target': '结点2'},
{'source': '结点7', 'target': '结点8'},
{'source': '结点8', 'target': '结点1'},
{'source': '结点8', 'target': '结点2'},
{'source': '结点8', 'target': '结点3'},
]
graph = (
Graph()
.add("", nodes, links)
)
graph.render_notebook()
平行坐标系
# 虚假数据
data = [
['一班', 78, 91, 123, 78, 82, 67, "优秀"],
['二班', 89, 101, 127, 88, 86, 75, "良好"],
['三班', 86, 93, 101, 84, 90, 73, "合格"],
]
parallel = (
Parallel()
.add_schema(
[
opts.ParallelAxisOpts(
dim=0,
name="班级",
type_="category",
data=["一班", "二班", "三班"],
),
opts.ParallelAxisOpts(dim=1, name="英语"),
opts.ParallelAxisOpts(dim=2, name="数学"),
opts.ParallelAxisOpts(dim=3, name="语文"),
opts.ParallelAxisOpts(dim=4, name="物理"),
opts.ParallelAxisOpts(dim=5, name="生物"),
opts.ParallelAxisOpts(dim=6, name="化学"),
opts.ParallelAxisOpts(
dim=7,
name="评级",
type_="category",
data=["优秀", "良好", "合格"],
),
]
)
.add("", data)
)
parallel.render_notebook()
极坐标系
# 虚假数据
cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']
data = [123, 153, 89, 107, 98, 23]
polar = (
Polar()
.add_schema(
radiusaxis_opts=opts.RadiusAxisOpts(data=cate, type_="category"),
)
.add("", data, type_='bar')
)
polar.render_notebook()
雷达图
# 虚假数据
data = [
[78, 91, 123, 78, 82, 67],
[89, 101, 127, 88, 86, 75],
[86, 93, 101, 84, 90, 73],
]
radar = (Radar()
.add_schema(schema=[
opts.RadarIndicatorItem(name="语文", max_=150),
opts.RadarIndicatorItem(name="数学", max_=150),
opts.RadarIndicatorItem(name="英语", max_=150),
opts.RadarIndicatorItem(name="物理", max_=100),
opts.RadarIndicatorItem(name="生物", max_=100),
opts.RadarIndicatorItem(name="化学", max_=100),
]
)
.add('', data)
)
radar.render_notebook()
旭日图
# 虚假数据
data = [
{"name": "湖南",
"children": [
{"name": "长沙",
"children": [
{"name": "雨花区", "value": 55},
{"name": "岳麓区", "value": 34},
{"name": "天心区", "value": 144},
]},
{"name": "常德",
"children": [
{"name": "武陵区", "value": 156},
{"name": "鼎城区", "value": 134},
]},
{"name": "湘潭", "value": 87},
{"name": "株洲", "value": 23},
],
},
{"name": "湖北",
"children": [
{"name": "武汉",
"children": [
{"name": "洪山区", "value": 55},
{"name": "东湖高新", "value": 78},
{"name": "江夏区", "value": 34},
]},
{"name": "鄂州", "value": 67},
{"name": "襄阳", "value": 34},
],
},
{"name": "北京", "value": 235}
]
sunburst = (Sunburst()
.add("", data_pair=data)
)
sunburst.render_notebook()
桑基图¶
# 虚假数据
nodes = [
{"name": "访问"},
{"name": "注册"},
{"name": "付费"},
]
links = [
{"source": "访问", "target": "注册", "value": 50},
{"source": "注册", "target": "付费", "value": 30},
]
sankey = (
Sankey()
.add("", nodes, links)
)
sankey.render_notebook()
河流图
# 虚假数据
cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']
date_list = ["2020/4/{}".format(i + 1) for i in range(30)]
data = [[day, random.randint(10, 50), c] for day in date_list for c in cate]
river = (
ThemeRiver()
.add(
series_name=cate,
data=data,
singleaxis_opts=opts.SingleAxisOpts(type_="time")
)
)
river.render_notebook()
词云图
words = [
("hey", 230),
("jude", 124),
("dont", 436),
("make", 255),
("it", 247),
("bad", 244),
("Take", 138),
("a sad song", 184),
("and", 12),
("make", 165),
("it", 247),
("better", 182),
("remember", 255),
("to", 150),
("let", 162),
("her", 266),
("into", 60),
("your", 82),
("heart", 173),
("then", 365),
("you", 360),
("can", 282),
("start", 273),
("make", 265),
]
wc = (
WordCloud()
.add("", words)
)
wc.render_notebook()
表格
from pyecharts.components import Table
table = Table()
headers = ["City name", "Area", "Population", "Annual Rainfall"]
rows = [
["Brisbane", 5905, 1857594, 1146.4],
["Adelaide", 1295, 1158259, 600.5],
["Darwin", 112, 120900, 1714.7],
["Hobart", 1357, 205556, 619.5],
["Sydney", 2058, 4336374, 1214.8],
["Melbourne", 1566, 3806092, 646.9],
["Perth", 5386, 1554769, 869.4],
]
table.add(headers, rows)
table.render_notebook()