from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
x_data = ["直接访问", "邮件营销", "联盟广告", "视频广告", "搜索引擎"]
y_data = [335, 310, 274, 235, 700]
data_pair = [list(z) for z in zip(x_data, y_data)]
data_pair.sort(key=lambda x: x[1])
p = (
Pie(init_opts=opts.InitOpts(theme=ThemeType.WALDEN,
page_title="Pie- Base"))
.add(
series_name="访问来源",
data_pair=data_pair,
radius="50%",
center=["50%", "50%"],
# is_clockwise=True, # 扇区排布方向
label_opts=opts.LabelOpts(is_show=True, position="center"),
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="Customized Pie",
pos_left="center",
pos_top="20",
),
legend_opts=opts.LegendOpts(is_show=False)
)
.set_series_opts(
tooltip_opts=opts.TooltipOpts(
trigger="item", formatter="{a}
{b}: {c} ({d}%)"
),
label_opts=opts.LabelOpts(color="rgba(0, 0, 0, 0.5"),
)
.render("Pie01.html")
)
os.system("Pie01.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
x_data = ["直接访问", "邮件营销", "联盟广告", "视频广告", "搜索引擎"]
y_data = [335, 310, 274, 235, 700]
data_pair = [list(z) for z in zip(x_data, y_data)]
data_pair.sort(key=lambda x: x[1])
p = (
Pie(init_opts=opts.InitOpts(theme=ThemeType.INFOGRAPHIC,
page_title="Pie- RoseType"))
.add(
series_name="访问来源",
data_pair=data_pair,
radius="50%", # 饼图
center=["50%", "50%"],
# 是否展示成南丁格尔图,通过半径区分数据大小
rosetype="radius", # 通过半径区分数据大小
# rosetype="area", # 通过面积区分数据大小
is_clockwise=True, # 扇区排布方向
label_opts=opts.LabelOpts(is_show=True, position="center"),
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="Pie - Rosetype",
pos_left="center",
pos_top="20",
),
legend_opts=opts.LegendOpts(is_show=False)
)
.set_series_opts(
tooltip_opts=opts.TooltipOpts(
trigger="item", formatter="{a}
{b}: {c} ({d}%)"
),
label_opts=opts.LabelOpts(color="rgba(0, 0, 0, 0.5"),
)
.render("Pie02.html")
)
os.system("Pie02.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
x_data = ["直接访问", "邮件营销", "联盟广告", "视频广告", "搜索引擎"]
y_data = [335, 310, 274, 235, 700]
data_pair = [list(z) for z in zip(x_data, y_data)]
data_pair.sort(key=lambda x: x[1])
p = (
Pie(init_opts=opts.InitOpts(theme=ThemeType.WALDEN,
page_title="Pie- Ring"))
.add(
series_name="访问来源",
data_pair=data_pair,
radius=["35%", "75%"], # 圆环图
center=["50%", "50%"],
is_clockwise=True, # 扇区排布方向
label_opts=opts.LabelOpts(is_show=True, position="center"),
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="Pie - Ring",
pos_left="center",
pos_top="20",
),
legend_opts=opts.LegendOpts(is_show=False)
)
.set_series_opts(
tooltip_opts=opts.TooltipOpts(
trigger="item", formatter="{a}
{b}: {c} ({d}%)"
),
label_opts=opts.LabelOpts(color="rgba(0, 0, 0, 0.5",
formatter="{b}: {c} ({d}%)",
font_size=14,
font_weight="bold",
font_family="Courier New",
),
)
.render("Pie03.html")
)
os.system("Pie03.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
inner_x_data = ["直达", "营销广告", "搜索引擎"]
inner_y_data = [335, 679, 1548]
outer_x_data = ["直达", "营销广告", "搜索引擎", "邮件营销", "联盟广告", "视频广告", "百度", "谷歌", "必应", "其他"]
outer_y_data = [335, 310, 234, 135, 1048, 251, 147, 102]
p = (
Pie(init_opts=opts.InitOpts(theme=ThemeType.WALDEN,
page_title="Nested Pie with Rich Text"))
.add(
series_name="访问来源",
data_pair=[list(z) for z in zip(inner_x_data, inner_y_data)],
radius=[0, "30%"],
label_opts=opts.LabelOpts(position="inner"),
)
.add(
series_name="访问来源2",
data_pair=[list(z) for z in zip(outer_x_data, outer_y_data)],
radius=["40%", "60%"],
label_opts=opts.LabelOpts(
position="outside",
formatter="{a|{a}}{abg|}\n{hr|}\n {b|{b}} : {c} {per|{d}%} ",
background_color="#eee",
border_color="#aaa",
border_width=1,
border_radius=4,
rich={
"a": {"color": "#999", "lineHeight": 22, "align": "center"},
"abg": {
"backgroundColor": "#e3e3e3",
"width": "100%",
"align": "right",
"height": 22,
"borderRadius": [4, 4, 0, 0],
},
"hr": {
"borderColor": "#aaa",
"width": "100%",
"borderWidth": 0.5,
"height": 0,
},
"b": {"fontSize": 14, "lineHeight": 33},
"per": {
"color": "#eee",
"backgroundColor": "#334455",
"padding": [2, 4],
"borderRadius": 2,
},
},
),
)
.set_global_opts(legend_opts=opts.LegendOpts(pos_left="left", orient="vertical"))
.set_series_opts(
tooltip_opts=opts.TooltipOpts(
trigger="item",
formatter="{a}
{b}: {c} ({d}%)"
)
)
.render("Pie04.html")
)
os.system("Pie04.html")
基础图形略。
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
from pyecharts.faker import Faker
b = (
Bar(init_opts=opts.InitOpts(page_title="Bar - Stack", theme=ThemeType.ESSOS))
.add_xaxis(Faker.choose())
.add_yaxis("商家A-1", Faker.values(), stack="stack01")
.add_yaxis("商家A-2", Faker.values(), stack="stack01")
.add_yaxis("商家B", Faker.values())
# .add_yaxis("商家B-1", Faker.values(), stack="stack02")
# .add_yaxis("商家B-2", Faker.values(), stack="stack02")
# .add_yaxis("商家B-3", Faker.values(), stack="stack02")
.set_series_opts(label_opts=opts.LabelOpts(position="insideTop", font_family="Courier New"))
.set_global_opts(
title_opts=opts.TitleOpts(title="Bar-Stack"),
yaxis_opts=opts.AxisOpts(name="销售额",
splitline_opts=opts.SplitLineOpts(
is_show=True,
linestyle_opts=opts.LineStyleOpts(
type_="dashed",
color="gray",
)),
),
xaxis_opts=opts.AxisOpts(name="细分市场", axislabel_opts=opts.LabelOpts(rotate=-20)),
)
.render("Bar02.html")
)
os.system("Bar02.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
import random
b = (
Bar(init_opts=opts.InitOpts(page_title="Bar-01", theme=ThemeType.WESTEROS))
.add_xaxis([
"名字很长很长很长的标签1",
"名字很长很长很长的标签2",
"名字很长很长很长的标签3",
"名字很长很长很长的标签4",
"名字很长很长很长的标签5",
"名字很长很长很长的标签6",
])
.add_yaxis("商家A", [random.randint(1, 100) for i in range(6)])
.add_yaxis("商家B", [random.randint(1, 100) for i in range(6)])
.set_global_opts(
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-20)), # 顺时针旋转20°
title_opts=opts.TitleOpts(title="Bar-旋转标签", subtitle="解决标签名字过长的问题")
)
.render("Bar01.html")
)
os.system("Bar01.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
b = (
Bar(init_opts=opts.InitOpts(page_title="Bar with MarkPoint", theme=ThemeType.VINTAGE))
.add_xaxis(Faker.choose())
.add_yaxis("Series A", Faker.values())
.add_yaxis("Series B", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="Bar - MarkPoint"),
legend_opts=opts.LegendOpts(pos_left="right", pos_top="top", orient="vertical"),
)
.set_series_opts(
label_opts=opts.LabelOpts(is_show=False), # 关闭所有值标签的显示
markpoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(type_="max", name="最大值"),
opts.MarkPointItem(type_="min", name="最小值"),
]
),
markline_opts=opts.MarkPointOpts(
data=[
opts.MarkLineItem(type_="average", name="平均值"),
opts.MarkLineItem(type_="max", name="最大值"),
],
label_opts=opts.LabelOpts(font_size=12, formatter="{b}{c}s")
)
)
.render("Bar03.html")
)
os.system("Bar03.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
from pyecharts.faker import Faker
# Bar - 渐变效果
b = (
Bar(init_opts=opts.InitOpts(page_title="Bar - Bar_border_radius"))
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values(), category_gap="60%")
.set_series_opts(
itemstyle_opts={
"normal": {
"color": JsCode(
"""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: 'rgba(0, 194, 255, 1)'
}, {
offset: 1,
color: 'rgba(0, 77, 167, 1)'
}], false)"""
),
"barBorderRadius": [30, 30, 30, 30],
"shadowColor": "rgb(0, 160, 221)",
}
}
)
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-渐变圆柱"))
.render("Bar04.html")
)
os.system("Bar04.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
from pyecharts.faker import Faker
b = (
Bar(init_opts=opts.InitOpts(page_title="Horizontal Bar",
theme=ThemeType.WESTEROS))
.add_xaxis(Faker.choose())
.add_yaxis("SeriesA", Faker.values())
.add_yaxis("SeriesB", Faker.values())
.reversal_axis()
.set_series_opts(label_opts=opts.LabelOpts(position="right"), # 记得对应地将数据标签调整至右侧
itemstyle_opts={
"normal": {
"barBorderRadius": [0, 10, 10, 0], # 注意圆角分别对应[左上,右上,右下,左下]
"shadowColor": "rgb(0, 160, 221)",
}
})
.set_global_opts(title_opts=opts.TitleOpts(title="Horizontal"),
# 注意这里反转后需要设置的是反转后的y轴(即x轴),而不是作为值代入的y
xaxis_opts=opts.AxisOpts(
type_="value",
name="value",
position="right",
offset=80,
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(color='#5793f3')
),
axislabel_opts=opts.LabelOpts(formatter="{value} 只"),
),
tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"))
.render("Bar05.html")
)
os.system("Bar05.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
from pyecharts.faker import Faker
data = [(i, j, random.randint(0, 12)) for i in range(6) for j in range(24)]
b = (
Bar3D(init_opts=opts.InitOpts(page_title="3D Bar", theme=ThemeType.WESTEROS))
.add(
"",
[[d[1], d[0], d[2]] for d in data],
xaxis3d_opts=opts.Axis3DOpts(Faker.clock, type_="category"),
yaxis3d_opts=opts.Axis3DOpts(Faker.week_en, type_="category"),
zaxis3d_opts=opts.Axis3DOpts(type_="value"),
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(max_=14)
)
.render("Bar3D.html")
)
os.system("Bar3D.html")
折线图调整要点:
- 是否堆叠
- 曲线or折线:is_smooth=False/True
- 是否连接空数据:is_connect_nones=False/True
- 是否填色(Area)
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
from pyecharts.faker import Faker
# Line - Base
x = Faker.choose()
y = Faker.values()
y_2 = Faker.values()
y[3], y[5] = None, None
line = (
Line(init_opts=opts.InitOpts(page_title="Line Demo",
theme=ThemeType.PURPLE_PASSION))
.add_xaxis(x)
.add_yaxis("Series A", y, is_connect_nones=True,
markpoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(name="Point 1", coord=[x[2], y[2]], value=y[2]),
opts.MarkPointItem(name="Point 2", coord=[x[6], y[6]], value=y[6]),
opts.MarkPointItem(name="max", type_="max"),
]
),
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis("Series B", y_2,
symbol="emptyCircle", # 设置标记点为空心圆
is_smooth=True, # 设置为平滑曲线
)
.set_global_opts(title_opts=opts.TitleOpts(title="Line - Connect Null"))
.render("line01.html")
)
os.system("line01.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
from pyecharts.faker import Faker
# Line - Area
x = Faker.choose()
a = Faker.values()
b = Faker.values()
c = Faker.values()
area = (
Line(init_opts=opts.InitOpts(page_title="Line Area", theme=ThemeType.ESSOS))
.add_xaxis(x)
.add_yaxis("Series A", a, stack="level 1")
# .add_yaxis("Series B", b, stack="level 1") # stack用同样的名字,则转化为堆积面积图
.add_yaxis("Series B", b, stack="level 2")
.set_series_opts(
areastyle_opts=opts.AreaStyleOpts(opacity=0.35), # 设置填色为面积图
label_opts=opts.LabelOpts(formatter="{c}"),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Area Chart"),
xaxis_opts=opts.AxisOpts(
axistick_opts=opts.AxisTickOpts(is_align_with_label=True), # 设置x轴标识
is_scale=False,
boundary_gap=False, # 将x轴最左刻度对齐y轴
)
)
.render("Line02.html")
)
os.system("Line02.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
# Line - 多x轴展示同比情况
x_1 = ["2020-" + str(i + 1) for i in range(12)]
x_2 = ["2021-" + str(i + 1) for i in range(12)]
y_1 = [round((random.random() + 0.2) * 10, 2) for i in range(12)]
y_2 = [round((random.random() + 0.25) * 10, 2) for i in range(12)]
line = (
Line(init_opts=opts.InitOpts(page_title="Multiple x_axis", theme=ThemeType.WESTEROS))
.add_xaxis(xaxis_data=x_1)
.extend_axis(
xaxis_data=x_2,
xaxis=opts.AxisOpts(
type_="category",
axistick_opts=opts.AxisTickOpts(is_align_with_label=True),
axisline_opts=opts.AxisLineOpts(
is_on_zero=False,
linestyle_opts=opts.LineStyleOpts(color="#6e9ef1")
),
),
)
.add_yaxis(
series_name="2020降水量",
is_smooth=True,
symbol="emptyCircle",
y_axis=y_1,
linestyle_opts=opts.LineStyleOpts(width=2),
)
.add_yaxis(
series_name="2021降水量",
is_smooth=True,
symbol="emptyCircle",
y_axis=y_2,
linestyle_opts=opts.LineStyleOpts(width=2),
)
.set_global_opts(
legend_opts=opts.LegendOpts(),
tooltip_opts=opts.TooltipOpts(axis_pointer_type="cross"),
yaxis_opts=opts.AxisOpts(
type_="value",
splitline_opts=opts.SplitLineOpts(
is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=0.8)
),
),
)
.set_series_opts(
# areastyle_opts=opts.AreaStyleOpts(opacity=0.35), # 设置填色为面积图
label_opts=opts.LabelOpts(is_show=False),
)
.render("Line03.html")
)
os.system("Line03.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
from pyecharts.faker import Faker
# Scatter - EffectScatter plus SplitLine
s = (
EffectScatter()
.add_xaxis(Faker.choose())
.add_yaxis("", Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(title="Effect Scatter"),
xaxis_opts=opts.AxisOpts(
splitline_opts=opts.SplitLineOpts(is_show=True, linestyle_opts=opts.LineStyleOpts(type_="dashed"))
),
yaxis_opts=opts.AxisOpts(
splitline_opts=opts.SplitLineOpts(is_show=True, linestyle_opts=opts.LineStyleOpts(type_="dashed"))
),
)
.render("Scatter01.html")
)
os.system("Scatter01.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
from pyecharts.faker import Faker
s = (
Scatter(init_opts=opts.InitOpts(page_title="Scatter Chart",
theme=ThemeType.WESTEROS))
.add_xaxis(Faker.choose())
.add_yaxis("Series A", Faker.values())
.add_yaxis("Series B", Faker.values())
.set_series_opts(label_opts=opts.LabelOpts(position="inside"))
.set_global_opts(
title_opts=opts.TitleOpts(title="Scatter with Size"),
visualmap_opts=opts.VisualMapOpts(type_="size", is_show=False, max_=150, min_=20),
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
)
.render("Scatter02.html")
)
os.system("Scatter02.html")
import os
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
liq = (
Liquid(init_opts=opts.InitOpts(page_title="Liquid Test 01", theme=ThemeType.WESTEROS))
.add(series_name="Liquid",
data=[0.35, 0.65],
# 水球外形,包括"circle","rect","roundRect","triangle","diamond","pin","arrow"
shape="roundRect",
# color=,
# background_color=,
is_animation=True, # 是否显示波浪动画
is_outline_show=False, # 是否显示边框宽度
# outline_border_distance: type.Numeric = 8, # 外沿边框宽度
# outline_border_opts: type.ItemStyle = None, # 外沿样式
label_opts=opts.LabelOpts(
font_size=40,
font_family="Courier New",
formatter=JsCode(
"""function (param) {
return (Math.floor(param.value * 10000) / 100) + '%';
}"""
),
position="inside",
),
# tooltip_opts=
)
.set_global_opts(title_opts=opts.TitleOpts(title="Liquid - with precision"))
.render("Liquid02.html")
)
os.system("Liquid02.html")
import os
import random
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
# Graph: 自定义结点
nodes = []
symbols = ["circle", "rect", "roundRect", "triangle", "diamond", "pin", "arrow", "none"]
for i in range(1, 10):
name = "结点%s" % i
nodes.append(opts.GraphNode(name=name,
symbol_size=random.randint(1, 5) * 5,
symbol=symbols[random.randint(1, len(symbols) - 1)]))
links = []
for i in nodes:
for j in nodes:
links.append(opts.GraphLink(source=i.get("name"),
target=j.get("name"),
value=random.randint(1, len(nodes))
)
)
# links.append({"source": i.get("name"), "target": j.get("name")})
# links.append({"source": i.get("name"), "target": j.get("name")})
c = (
Graph(init_opts=opts.InitOpts(theme=ThemeType.MACARONS,
page_title="Pyecharts-Gallery-Graph-01"))
.add("", nodes, links, repulsion=8000)
.set_global_opts(title_opts=opts.TitleOpts(title="Graph-Optional"))
.render("Graph02.html")
)
os.system("Graph02.html")
import datetime
import random
import os
from pyecharts import options as opts
from pyecharts.charts import *
begin = datetime.date(2020, 1, 1)
end = datetime.date(2020, 12, 31)
data = [
[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]
for i in range((end - begin).days + 1)
]
c = (
Calendar(init_opts=opts.InitOpts(page_title="Pyecharts-Gallery-Calendar-01"))
.add(
"",
data,
calendar_opts=opts.CalendarOpts(
range_="2020",
daylabel_opts=opts.CalendarDayLabelOpts(name_map="cn"),
monthlabel_opts=opts.CalendarMonthLabelOpts(name_map="cn"),
),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Calendar-2020微信步数情况(中文Label)"),
visualmap_opts=opts.VisualMapOpts(
max_=20000,
min_=500,
orient="horizontal",
is_piecewise=True,
pos_top="230px",
pos_left="100px",
),
)
.render("calendar_label_setting.html")
)
os.system("calendar_label_setting.html")
import os
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
x_data = ["View", "Click", "Visit", "Chat", "Order"]
y_data = [100, 90, 45, 20, 5]
data = [list(z) for z in zip(x_data, y_data)]
funnel = (
Funnel(init_opts=opts.InitOpts(width="800px", height="600px",
theme=ThemeType.WESTEROS,
page_title="Pyecharts-Gallery-Funnel-01"))
.add(
series_name="",
data_pair=data,
gap=2,
tooltip_opts=opts.TooltipOpts(trigger="item", formatter="{a}
{b} : {c}%"),
label_opts=opts.LabelOpts(is_show=True, position="inside"),
itemstyle_opts=opts.ItemStyleOpts(border_color="#fff", border_width=1),
)
.set_global_opts(title_opts=opts.TitleOpts(title="Funnel"))
.render("funnel01.html")
)
os.system("funnel01.html")
import os
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
c = (
Gauge(init_opts=opts.InitOpts(theme=ThemeType.MACARONS,
page_title="Pyecharts-Gallery-Gauge-01"))
.add(
series_name="Group A",
data_pair=[["Completed", 62.5]],
split_number=5, # 仪表盘平均分割段数
tooltip_opts=opts.TooltipOpts(is_show=True, formatter="{a}
{b} : {c}%"),
title_label_opts=opts.GaugeTitleOpts(is_show=False), # 隐藏系列名称,否则会重叠
detail_label_opts=opts.GaugeDetailOpts(
formatter="{value}%",
font_family="Courier New",
font_size=25,
)
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Gauge"),
legend_opts=opts.LegendOpts(is_show=False),
)
.render("Gauge01.html")
)
os.system("Gauge01.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
# Tree - Basic
data = [
{
"children": [
{"name": "B"},
{
"children": [
{"children": [{"name": "I"}],
"name": "E"},
{"name": "F"}
],
"name": "C",
},
{
"children": [
{"children": [{"name": "J"}, {"name": "K"}],
"name": "H"},
],
"name": "D",
},
],
"name": "A",
}
]
t = (
Tree()
.add("", data)
.set_global_opts(title_opts=opts.TitleOpts(title="Basic Tree"))
.render("Tree01.html")
)
os.system("Tree01.html")
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
words = [
("Sam S Club", 10000),
("Macys", 6181),
("Amy Schumer", 4386),
("Jurassic World", 4055),
("Charter Communications", 2467),
("Chick Fil A", 2244),
("Planet Fitness", 1868),
("Pitch Perfect", 1484),
("Express", 1112),
("Home", 865),
("Johnny Depp", 847),
("Lena Dunham", 582),
("Lewis Hamilton", 555),
("KXAN", 550),
("Mary Ellen Mark", 462),
("Farrah Abraham", 366),
("Rita Ora", 360),
("Serena Williams", 282),
("NCAA baseball tournament", 273),
("Point Break", 265),
]
c = (
WordCloud(init_opts=opts.InitOpts(page_title="Word Cloud",
theme=ThemeType.ESSOS))
.add(
series_name="",
data_pair=words,
word_size_range=[20, 100],
shape=SymbolType.TRIANGLE,
textstyle_opts=opts.TextStyleOpts(font_family="Courier New")
)
.set_global_opts(title_opts=opts.TitleOpts(title="WordCloud"))
.render("WordCloud01.html")
)
os.system("WordCloud01.html")
import random
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
weekday = ["Mon", "Tues", "Wed", "Thur", "Fri", "Sat", "Sun"]
work_done_a = [random.randint(1, 10) for i in range(7)]
work_done_b = [random.randint(1, 10) for i in range(7)]
p = (
Polar(init_opts=opts.InitOpts(theme=ThemeType.MACARONS,
page_title="Polar-RadiusAxis"))
.add_schema(
radiusaxis_opts=opts.RadiusAxisOpts(data=weekday, type_="category"),
angleaxis_opts=opts.AngleAxisOpts(is_clockwise=True, max_=10),
)
.add(
series_name="Employee A",
data=work_done_a,
type_="bar",
)
.add(
series_name="Employee B",
data=work_done_b,
type_="bar",
)
.set_global_opts(title_opts=opts.TitleOpts(title="Polar-RadiusAxis"))
.set_series_opts(label_opts=opts.LabelOpts(is_show=True))
.render("Polar01.html")
)
os.system("Polar01.html")
import random
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import *
v1 = [[random.randint(1, i + 2) * 100 for i in range(6)]]
v2 = [[random.randint(1, i + 2) * 100 for i in range(6)]]
r = (
Radar(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE,
page_title="Radar Basic"))
.add_schema(
schema=[
opts.RadarIndicatorItem(name="销售", max_=200),
opts.RadarIndicatorItem(name="管理", max_=300),
opts.RadarIndicatorItem(name="IT", max_=400),
opts.RadarIndicatorItem(name="客服", max_=500),
opts.RadarIndicatorItem(name="研发", max_=600),
opts.RadarIndicatorItem(name="市场", max_=700),
],
shape="polygon", # 可选"polygon"或"circle"
)
.add(series_name="预算分配",
data=v1,
symbol="circle",
color="#000",
linestyle_opts=opts.LineStyleOpts(width=2))
.add(series_name="实际开销",
data=v2,
symbol="circle",
linestyle_opts=opts.LineStyleOpts(width=2))
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
# legend_opts=opts.LegendOpts(selected_mode="single"), # 单选模式
title_opts=opts.TitleOpts(title="Radar Basic"),
)
.render("\Radar01.html")
)
os.system("\Radar01.html")
关于标签内容格式器(formatter)的说明:
标签内容格式器,支持字符串模板和回调函数两种形式,字符串模板与回调函数返回的字符串均支持用 \n 换行。
{
componentType: 'series',
// 系列类型
seriesType: string,
// 系列在传入的 option.series 中的 index
seriesIndex: number,
// 系列名称
seriesName: string,
// 数据名,类目名
name: string,
// 数据在传入的 data 数组中的 index
dataIndex: number,
// 传入的原始数据项
data: Object,
// 传入的数据值
value: number|Array,
// 数据图形的颜色
color: string,
}