https://zhuanlan.zhihu.com/p/25841878
Echarts 是一个由百度开源的数据可视化工具,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。pyecharts api可以参考:https://pyecharts.org/#/zh-cn/chart_api
Echarts,百度开源的数据可视化工具,交互性好,图表精美
Pyecharts = Python + Echarts
在python中使用echarts
新版本1.X,不向下兼容,,全面拥抱 Python3 和 TypeHint
即原有0.5.x版本不再进行维护
主要分为全局配置组件和系列配置组件。
bar.render_notebook() # 直接使用jupyter直接进行交互,更方便一点
bar.render('temp.html') # 渲染成html,再打开HTML文件
# 因为使用第三方的js,所以要提前加载进来
var myChart = echarts.init(document.getElementById('main')); # 对echarts进行初始化,得到对象myChart
使用 options 配置项,在 pyecharts 中,一切皆 Options。
用echarts实现
用pyecharts来实现
# 用pyecharts来实现
import pyecharts.options as opts
from pyecharts.charts import Bar
country = ["美国","西班牙","意大利","法国","德国","伊朗","英国","以色列","荷兰","奥地利"]
data = [13981, 7457, 5210, 2933, 1970, 1700, 1452, 1000, 852, 684]
bar = (
Bar()
.add_xaxis(country)
.add_yaxis("新增确诊", data)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="昨日新增确诊国家 Top10"))
)
bar.render('temp.html') # 直接使用jupyter直接进行交互
#bar.render_notebook() # render的意思是把之前得到的bar对象渲染为HTML文件
# 柱状图绘制
import pyecharts.options as opts
from pyecharts.charts import Bar
# 绘制多列柱状图
country = ["美国","西班牙","意大利","法国","德国","伊朗","英国","以色列","荷兰","奥地利"]
data1 = [69223, 49515, 74386, 25233, 37323, 27017, 9529, 2369, 6412, 5560]
data2 = [13981, 7457, 5210, 2933, 1970, 1700, 1452, 1000, 852, 684]
bar = (
Bar()
.add_xaxis(country)
.add_yaxis("累计确诊", data1)
.add_yaxis("新增确诊", data2)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="昨日新增确诊国家 Top10"))
)
bar.render('temp.html') # render的意思是把之前得到的bar对象渲染为HTML文件
import pyecharts.options as opts
from pyecharts.charts import Line
# 设置折线图
line=Line()
# 设置x轴数据
line.add_xaxis(["201{}年/{}季度".format(y,z)
for y in range(4)
for z in range(1,5)])
# 设置y轴数据
line.add_yaxis(
"手机销量",
[4.80,4.10,6.00,6.50,5.80,5.20,6.80,7.40,
6.00,5.60,7.50,7.80,6.30,5.90,8.00,8.40]
)
line.set_global_opts(
#设置x轴标签旋转角度
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-40),),
#设置y轴名称
yaxis_opts=opts.AxisOpts(name="销量(单位/百万台)"),
#设置图表标题
title_opts=opts.TitleOpts(title="折线图"))
#渲染图表
line.render_notebook()
# 绘制饼图
from pyecharts import options as opts
from pyecharts.charts import Page, Pie
v1=["啤酒","可乐","雪碧","咖啡","奶茶"]
v2=[30,19,21,12,18]
pie = (
Pie()
.add("", [list(z) for z in zip(v1,v2)])
.set_global_opts(title_opts=opts.TitleOpts(title="销售收入占比"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}%"))#格式化标签输出内容
)
pie.render_notebook()
# 绘制雷达图
from pyecharts import options as opts
from pyecharts.charts import Page, Radar
v1 = [[4300, 10000, 28000, 35000, 50000, 19000]]
v2 = [[5000, 14000, 28000, 31000, 42000, 21000]]
radar = (
Radar()
.add_schema(
schema=[
opts.RadarIndicatorItem(name="KDA", max_=6500),
opts.RadarIndicatorItem(name="输出", max_=16000),
opts.RadarIndicatorItem(name="经济", max_=30000),
opts.RadarIndicatorItem(name="生存", max_=38000),
opts.RadarIndicatorItem(name="推进", max_=52000),
opts.RadarIndicatorItem(name="打野", max_=25000),
]
)
.add("鲁班", v1, #添加系列名称及数据
color="red", #设置边框线的颜色
areastyle_opts = opts.AreaStyleOpts(#设置填充的属性
opacity = 0.5, #透明度
color="red" #填充颜色
),)
.add("后裔", v2,color="blue",
areastyle_opts = opts.AreaStyleOpts(
opacity = 0.5,#透明度
color="blue"
),)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="英雄成长对比"))
)
radar.render_notebook()
import pyecharts.options as opts
from pyecharts.charts import Pie
# 绘制玫瑰图
rose = (
Pie()
.add(
"",
[list(z) for z in zip(["201{}年/{}季度".format(y,z)
for y in range(2)
for z in range(1,3)], [4.80,4.10,5.80,5.20])],
#设置内径外径
radius=["0%", "75%"],
#玫瑰图有两种类型
rosetype="radius",
label_opts=opts.LabelOpts(is_show=True),
)
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰图示例"))
)
rose.render_notebook()