- 简介
- pyecharts安装
- 柱状图(体验一下pyecharts)
- 全局配置
- 统揽都有哪些构件
- 坐标轴相关操作
- 关闭坐标轴的显示
- 自定义轴
- 更改坐标轴数据类型
- 双y轴
- 直方图
- 折线图
- 面积图
- 气泡效果散点图
- 自定义图形
- GEO自定义
- 关闭坐标轴显示
- 自定义坐标轴标签文本
- 自定义图例图形
- 缩略轴
- XY轴翻转
- 设置动画效果
- 视觉组件
- 设置分割区域
- 效果折线图
- GEO自定义
- 饼图自定义
- 散点图添加视觉组件
- 定义样式
pyecharts 是一个用于生成 Echarts 图表的Python库。Echarts是百度开源的一个数据可视化 JS 库,可以生成一些非常酷炫的图表。
是一款将Python与ECharts相结合的强大的数据可视化工具,
使用pyecharts可以让开发者轻松的实现大数据的可视化.
pyecharts绘制图表的基本语法如下:
from pyecharts import chart_name add() #添加图表的各项数据。 render() # 将图表生成为可视化的html网页pyecharts安装
pip install pyecharts
如果需要,安装对应的地图文件包
- pip install echarts-countries-pypkg,安装全球国家地图
- pip install echarts-china-provinces-pypkg,安装中国省级地图
- pip install echarts-china-cities-pypkg,安装中国市级地图
import pyecharts print(pyecharts.__version__)柱状图(体验一下pyecharts)
cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']
data1 = [123, 153, 89, 107, 98, 23]
data2 = [56, 77, 93, 68, 45, 67]
# 1.x版本支持链式调用
bar = (Bar()
.add_xaxis(cate)
.add_yaxis('电商渠道', data1)
.add_yaxis('门店', data2)
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))
)
bar.render("first.html")
不同系列的数据使用相同的stack值会堆叠在一起;
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.faker import Faker
def bar_stack():
bar = Bar(init_opts=opts.InitOpts(theme='light',
width='1000px',
height='600px'))
bar.add_xaxis(Faker.choose())
# stack值一样的系列会堆叠在一起
bar.add_yaxis('A', Faker.values(), stack='stack1')
bar.add_yaxis('B', Faker.values(), stack='stack1')
bar.add_yaxis('C', Faker.values(), stack='stack2')
return bar
chart = bar_stack()
chart.render("render.html")
全局配置
统揽都有哪些构件
坐标轴相关操作 关闭坐标轴的显示可以通过全局配置(.set_global_opts():)控制以下区域
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.faker import Faker
def bar_with_axis_off():
bar = Bar(init_opts=opts.InitOpts(theme='light',
width='1000px',
height='600px'))
bar.add_xaxis(Faker.choose())
bar.add_yaxis('', Faker.values())
# 碰上类目标签过长的时候,可以选择关闭坐标轴,直接显示在图形中
bar.set_series_opts(label_opts=opts.LabelOpts(position='insideLeft', formatter='{b}:{c}'))
bar.set_global_opts(xaxis_opts=opts.AxisOpts(is_show=False),
yaxis_opts=opts.AxisOpts(is_show=False))
bar.reversal_axis()
return bar
chart = bar_with_axis_off()
chart.render("close_options.html")
自定义轴
from pyecharts.charts import *
from pyecharts import options as opts
import random
x_data = list(range(2010, 2020))
y_data = [random.randint(20, 200) for _ in range(len(x_data))]
def bar_with_custom_axis_label():
bar = Bar(init_opts=opts.InitOpts(theme='light',
width='1000px',
height='600px'))
bar.add_xaxis(x_data)
bar.add_yaxis('', y_data)
bar.set_global_opts(xaxis_opts=opts.AxisOpts(
# 自定义坐标轴标签,在年份后加上`年`
axislabel_opts=opts.LabelOpts(formatter='{value}年')))
return bar
chart = bar_with_custom_axis_label()
chart.render("DIY_label.html")
更改坐标轴数据类型
x轴默认数据类型是使用离散型,在使用散点图的时候可调整为数值型;
from pyecharts.charts import *
from pyecharts import options as opts
import random
x_data = [random.randint(0, 20) for _ in range(100)]
y_data = [random.randint(0, 50) for _ in range(100)]
def scatter_with_value_xaxis():
scatter = Scatter(init_opts=opts.InitOpts(theme='light',
width='1000px',
height='600px'))
scatter.add_xaxis(x_data)
scatter.add_yaxis('', y_data)
# X轴默认数据类型为离散数据,设置为数值型
scatter.set_global_opts(xaxis_opts=opts.AxisOpts(type_="value"))
return scatter
chart = scatter_with_value_xaxis()
chart.render("set_global_optsset_global_opts.html")
双y轴
from pyecharts.charts import *
from pyecharts import options as opts
import random
x_data = ['香蕉', '梨子', '水蜜桃', '核桃', '西瓜', '苹果']
y_data_1 = [random.randint(10, 50) for _ in range(len(x_data))]
y_data_2 = [random.randint(100, 500) for _ in range(len(x_data))]
def bar_line_combine_with_two_axis():
bar = Bar(init_opts=opts.InitOpts(theme='light',
width='1000px',
height='600px'))
bar.add_xaxis(x_data)
# 添加一个Y轴
bar.extend_axis(yaxis=opts.AxisOpts())
bar.add_yaxis('左边Y轴', y_data_1, yaxis_index=0)
line = Line(init_opts=opts.InitOpts(theme='light',
width='1000px',
height='600px'))
line.add_xaxis(x_data)
# 将line数据通过yaxis_index指向后添加的Y轴
line.add_yaxis('右边Y轴', y_data_2, yaxis_index=1)
bar.overlap(line)
return bar
chart = bar_line_combine_with_two_axis()
chart.render("double_Y_axsi.html")
直方图
折线图
面积图
气泡效果散点图
自定义图形
GEO自定义
关闭坐标轴显示
自定义坐标轴标签文本
自定义图例图形
缩略轴
XY轴翻转
设置动画效果
视觉组件
设置分割区域
效果折线图
GEO自定义
饼图自定义
散点图添加视觉组件
定义样式


