这篇博文主要是接着上篇博文继续学习Pyecharts。
主题
Pyecharts提供了十几个默认的主题,分别是LIGHT,DARK,CHALK,ESSOS,INFOGRAPHIC,MACARONS,PURPLE_PASSION,ROMA,ROMANTIC,SHINE,VINTAGE,WALDEN,WESTEROS,WONDERLAND。
x = ["a","b","c","d"]
y = [200,400,190,290]
y2 = [290,123,234,156]
y3 = [267,349,123,456]
bar = pyec.Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
bar.add_xaxis(x)
bar.add_yaxis(series_name="A",yaxis_data=y)
bar.add_yaxis(series_name="B",yaxis_data=y2)
bar.add_yaxis(series_name="C",yaxis_data=y3)
bar.render_notebook()
下面调几种我自己觉得相对不错的颜色搭配。
CHALK
MACARONS
PURPLE_PASSION
WALDEN
本来主题设置是在全局配置项的初始化配置项中,明明可以通过set_global方法来设置,但是不知道为什么老是出错。
基本图表
漏斗图
from pyecharts.globals import ThemeType
import pyecharts as pyec
from pyecharts.faker import Faker
funnel = pyec.charts.Funnel(init_opts = opts.InitOpts(theme=ThemeType.LIGHT))
#Faker.choose()和Faker.values()都会返回一个列表,前者是字符串列表,后者是数字列表
data_pair = list(zip(Faker.choose(),Faker.values()))
funnel.add(" ",data_pair,label_opts=opts.LabelOpts(position="inside"))#position值可以改为outside
funnel.render_notebook()
Out:
日历图
import datetime
import random
from pyecharts import options as opts
from pyecharts.charts import Calendar
begin = datetime.date(2017, 1, 1)
end = datetime.date(2017, 12, 31)
data = [
[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]
for i in range((end - begin).days + 1)
]
calendar = Calendar()
calendar.add("", data, calendar_opts=opts.CalendarOpts(range_="2017"))
calendar.set_global_opts(
title_opts=opts.TitleOpts(title="Calendar-2017年微信步数情况"),
visualmap_opts=opts.VisualMapOpts(
max_=20000,
min_=500,
orient="horizontal",
is_piecewise=True,
pos_top="230px",
pos_left="100px"
)
)
calendar.render_notebook()
Out:
仪表盘
from pyecharts.globals import ThemeType
import pyecharts as pyec
gauge = pyec.charts.Gauge(init_opts = opts.InitOpts(theme=ThemeType.MACARONS))
gauge.add("",
[("完成率", 60)],
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[(0.6, "red"), (1, "green")],width=30
)
)
)
gauge.render_notebook()
Out:
水球图
liquid = pyec.charts.Liquid()
liquid.add("",[0.4])
liquid.render_notebook()
Out: