Pycharts的内容(转载)

转载:https://www.cnblogs.com/crazyforever/articles/9569258.html

官网手册:https://pyecharts.org/#/zh-cn/intro

Echarts网址:https://echarts.apache.org/examples/zh/index.html

渲染图表

示例第一个图表:

1

2

3

4

5

6

from pyecharts import Bar

 

bar = Bar('我的第一个图表''这里是副标题')

bar.add('服装',["衬衫""羊毛衫""雪纺衫""裤子""高跟鞋""袜子"],[52036107590])

 

bar.render()

  • add()
    主要方法,用于添加图表的数据和设置各种配置项
  • render()
    默认将会在根目录下生成一个 render.html 的文件,支持 path 参数,设置文件保存位置,如 render(r"e:\my_first_chart.html"),文件用浏览器打开。

Note: 可以按右边的下载按钮将图片下载到本地,如果想要提供更多实用工具按钮,请在 add() 中设置 is_more_utils 为 True

效果图:

使用主题

1

2

3

4

5

6

7

from pyecharts import Bar

 

bar = Bar('我的第一个图表''这里是副标题')

bar.use_theme('dark')

bar.add('服装',["衬衫""羊毛衫""雪纺衫""裤子""高跟鞋""袜子"],[52036107590])

 

bar.render(r'firstEchart.html')

  • use_theme() 用于设置主题

效果:

多个数据

1

2

3

4

5

6

7

8

9

10

11

12

from pyecharts import Bar

 

CLOTHES = ["衬衫""羊毛衫""雪纺衫""裤子""高跟鞋""袜子"]

clothes_v1 = [52036107590]

clothes_v2 = [10258602080]

 

bar = Bar('我的第一个图表''这里是副标题')

bar.use_theme('dark')

bar.add('商家A',CLOTHES,clothes_v1)

bar.add('商家B',CLOTHES,clothes_v2)

 

bar.render(r'multi.html')

多次显示图表

从 v0.4.0+ 开始,pyecharts 重构了渲染的内部逻辑,改善效率。推荐使用以下方式显示多个图表。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

from pyecharts import Bar, Line

from pyecharts.engine import create_default_environment

 

bar = Bar("我的第一个图表""这里是副标题")

bar.add("服装", ["衬衫""羊毛衫""雪纺衫""裤子""高跟鞋""袜子"], [52036107590])

 

line = Line("我的第一个图表""这里是副标题")

line.add("服装", ["衬衫""羊毛衫""雪纺衫""裤子""高跟鞋""袜子"], [52036107590])

 

env = create_default_environment("html")

# 为渲染创建一个默认配置环境

# create_default_environment(filet_ype)

# file_type: 'html', 'svg', 'png', 'jpeg', 'gif' or 'pdf'

 

env.render_chart_to_file(bar, path='bar.html')

env.render_chart_to_file(line, path='line.html')

1

2

3

4

5

6

7

8

9

10

11

12

from pyecharts import Bar

 

attr = ['{}月'.format(i) for in range(1,13)]

 

v1 = [2.04.97.023.225.676.7135.6162.232.620.06.43.3]

v2 = [2.65.99.026.428.770.7175.6182.248.718.06.02.3]

 

bar = Bar('柱状图')

bar.add('蒸发量',attr,v1,mark_line=['average'],mark_point=['max','min'])

bar.add('降水量',attr,v2,mark_line=['average'],mark_point=['max','min'])

 

bar.render(r'b.html')

1

2

3

4

5

6

7

8

9

10

11

from pyecharts import Pie

 

 

attr = ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子']

v1 = [11,12,13,10,10,10]

v2 = [19,21,32,20,20,33]

 

pie = Pie('饼图',title_pos='center',width=900)

pie.add('商品A',attr,v1,center=[25,50],is_random=True,radius=[30,75],rosetype='radius')

pie.add('商品B',attr,v2,center=[75,50],is_random=True,radius=[30,75],rosetype='area',is_legend_show=False)

pie.render(r'pie.html')

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

from pyecharts import Line,Overlap,Bar

 

attr = ['A','B','C','D','E','F']

 

v1 = [10,20,30,40,50,60]

v2 = [38,28,58,48,78,68]

 

bar = Bar('Line-Bar')

bar.add('bar',attr,v1)

line = Line()

line.add('line',attr,v2)

 

overlap = Overlap()

overlap.add(bar)

overlap.add(line)

 

overlap.render('bar-line.html')

基本图表类详情

Bar(柱状图/条形图):柱状/条形图,通过柱形的高度/条形的宽度来表现数据的大小。

  • add(name, x_axis, y_axis, is_stack=False, bar_category_gap='20%', **kwargs)
  • name->str 图例名称
  • x_axis -> list-->x 坐标轴数据
  • y_axis -> list-->y 坐标轴数据
  • is_stack -> bool数据堆叠,同个类目轴上系列配置相同的 stack 值可以堆叠放置
  • bar_category_gap -> int/str,类目轴的柱状距离,当设置为 0 时柱状是紧挨着(直方图类型),默认为 '20%'

is_stack 实现数据堆叠

1

2

3

4

5

6

7

8

9

from pyecharts import Bar

 

attr = ["衬衫""羊毛衫""雪纺衫""裤子""高跟鞋""袜子"]

v1 = [52036107590]

v2 = [10258602080]

bar = Bar("柱状图数据堆叠示例")

bar.add("商家A", attr, v1, is_stack=True)

bar.add("商家B", attr, v2, is_stack=True)

bar.render(r'is_stack.html')

使用标记点和标记线

1

2

3

4

5

6

7

8

9

from pyecharts import Bar

 

attr = ["衬衫""羊毛衫""雪纺衫""裤子""高跟鞋""袜子"]

v1 = [52036107590]

v2 = [10258602080]

bar = Bar("柱状图数据堆叠示例")

bar.add("商家A", attr, v1, mark_point=['average'])

bar.add("商家B", attr, v2, mark_line=['min','max'])

bar.render(r'mark_p_l.html')

is_convert 交换 XY 轴

1

2

3

4

5

6

7

8

9

from pyecharts import Bar

 

attr = ["衬衫""羊毛衫""雪纺衫""裤子""高跟鞋""袜子"]

v1 = [52036107590]

v2 = [10258602080]

bar = Bar("x 轴和 y 轴交换")

bar.add("商家A", attr, v1)

bar.add("商家B", attr, v2,is_convert=True)

bar.render(r'is_convert.html')

dataZoom 效果,'slider' 类型

1

2

3

4

5

6

7

8

9

from pyecharts import Bar

import random

 

attr = ['{}天'.format(i) for in range(30)]

v1 = [random.randint(1,30for in range(30)]

 

bar = Bar('Bar - datazoom - slider 示例')

bar.add('',attr,v1,is_label_show=True,is_datazoom_show=True)

bar.render(r'datazoom.html')

Bar3D(3D 柱状图)

add(name, x_axis, y_axis, data, grid3d_opacity=1, grid3d_shading='color', **kwargs)

  • name -> str
    图例名称
  • x_axis -> str
    x 坐标轴数据。需为类目轴,也就是不能是数值。
  • y_axis -> str
    y 坐标轴数据。需为类目轴,也就是不能是数值。
  • data -> [list], 包含列表的列表
    数据项,数据中,每一行是一个『数据项』,每一列属于一个『维度』
  • grid3d_opacity -> int
    3D 笛卡尔坐标系组的透明度(柱状的透明度),默认为 1,完全不透明。
  • grid3d_shading -> str
    三维柱状图中三维图形的着色效果。
  • color:只显示颜色,不受光照等其它因素的影响。
  • lambert:通过经典的 lambert 着色表现光照带来的明暗。
  • realistic:真实感渲染,配合 light.ambientCubemap 和 postEffect 使用可以让展示的画面效果和质感有质的提升。ECharts GL 中使用了基于物理的渲染(PBR) 来表现真实感材质。

 View Code

Gauge(仪表盘)

add(name, attr, value, scale_range=None, angle_range=None, **kwargs)

  • name -> str
    图例名称
  • attr -> list
    属性名称
  • value -> list
    属性所对应的值
  • scale_range -> list
    仪表盘数据范围。默认为 [0, 100]
  • angle_range -> list
    仪表盘角度范围。默认为 [225, -45]

1

2

3

4

5

from pyecharts import Gauge

 

gauge = Gauge("仪表盘示例")

gauge.add("业务指标""完成率"66.66)

gauge.render()

Geo(地理坐标系)

add(name, attr, value, type="scatter", maptype='china', coordinate_region='中国', symbol_size=12, border_color="#111", geo_normal_color="#323c48", geo_emphasis_color="#2a333d", geo_cities_coords=None, is_roam=True, **kwargs)

  • name -> str
    图例名称
  • attr -> list
    属性名称
  • value -> list
    属性所对应的值
  • type -> str
    图例类型,有'scatter', 'effectScatter', 'heatmap'可选。默认为 'scatter'
  • maptype -> str
    地图类型。 从 v0.3.2+ 起,地图已经变为扩展包,支持全国省份,全国城市,全国区县,全球国家等地图,具体请参考 地图自定义篇
  • coordinate_region -> str
    城市坐标所属国家。从 v0.5.7 引入,针对国际城市的地理位置的查找。默认为 中国。具体的国家/地区映射表参照 countries_regions_db.json。更多地理坐标信息可以参考 数据集篇
  • symbol_size -> int
    标记图形大小。默认为 12
  • border_color -> str
    地图边界颜色。默认为 '#111'
  • geo_normal_color -> str
    正常状态下地图区域的颜色。默认为 '#323c48'
  • geo_emphasis_color -> str
    高亮状态下地图区域的颜色。默认为 '#2a333d'
  • geo_cities_coords -> dict
    用户自定义地区经纬度,类似如 {'阿城': [126.58, 45.32],} 这样的字典。
  • is_roam -> bool
    是否开启鼠标缩放和平移漫游。默认为 True
    如果只想要开启缩放或者平移,可以设置成'scale'或者'move'。设置成 True 为都开启

 View Code

Kline/Candlestick(K线图)

add(name, x_axis, y_axis, **kwargs)

  • name -> str
    图例名称
  • x_axis -> list
    x 坐标轴数据
  • y_axis -> [list], 包含列表的列表
    y 坐标轴数据。数据中,每一行是一个『数据项』,每一列属于一个『维度』。 数据项具体为 [open, close, lowest, highest] (即:[开盘值, 收盘值, 最低值, 最高值])

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

from pyecharts import Kline

 

v1 = [[2320.262320.262287.32362.94], [23002291.32288.262308.38],

      [2295.352346.52295.352345.92], [2347.222358.982337.352363.8],

      [2360.752382.482347.892383.76], [2383.432385.422371.232391.82],

      [2377.412419.022369.572421.15], [2425.922428.152417.582440.38],

      [24112433.132403.32437.42], [2432.682334.482427.72441.73],

      [2430.692418.532394.222433.89], [2416.622432.42414.42443.03],

      [2441.912421.562418.432444.8], [2420.262382.912373.532427.07],

      [2383.492397.182370.612397.94], [2378.822325.952309.172378.82],

      [2322.942314.162308.762330.88], [2320.622325.822315.012338.78],

      [2313.742293.342289.892340.71], [2297.772313.222292.032324.63],

      [2322.322365.592308.922366.16], [2364.542359.512330.862369.65],

      [2332.082273.42259.252333.54], [2274.812326.312270.12328.14],

      [2333.612347.182321.62351.44], [2340.442324.292304.272352.02],

      [2326.422318.612314.592333.67], [2314.682310.592296.582320.96],

      [2309.162286.62264.832333.29], [2282.172263.972253.252286.33],

      [2255.772270.282253.312276.22]]

kline = Kline("K 线图示例")

kline.add("日K", ["2018/9/{}".format(i + 1for in range(30)], v1)

kline.render()

Map(地图)

地图主要用于地理区域数据的可视化

add(name, attr, value, maptype='china', is_roam=True, is_map_symbol_show=True, **kwargs)

  • name -> str
    图例名称
  • attr -> list
    属性名称
  • value -> list
    属性所对应的值
  • maptype -> str
    地图类型。 从 v0.3.2+ 起,地图已经变为扩展包,支持全国省份,全国城市,全国区县,全球国家等地图,具体请参考 地图自定义篇
  • is_roam -> bool/str
    是否开启鼠标缩放和平移漫游。默认为 True
    如果只想要开启缩放或者平移,可以设置成'scale'或者'move'。设置成 True 为都开启
  • is_map_symbol_show -> bool
    是否显示地图标记红点,默认为 True。
  • name_map -> dict
  • 用自定义的地图名称. 有些地图提供行政区号,name_map 可以帮助把它们转换成用户满意的地名。比如英国选区地图,伦敦选区的行政区号是 E14000639 ,把它转换成可读地名就需要这么一个字典

1

2

3

4

5

6

7

from pyecharts import Map

 

value = [155106678]

attr = ["福建""山东""北京""上海"]

map = Map("全国地图示例", width=1200, height=600)

map.add("", attr, value, maptype='china')

map.render()

WordCloud(词云图)

add(name, attr, value, shape="circle", word_gap=20, word_size_range=None, rotate_step=45)

  • name -> str
    图例名称
  • attr -> list
    属性名称
  • value -> list
    属性所对应的值
  • shape -> list
    词云图轮廓,有'circle', 'cardioid', 'diamond', 'triangle-forward', 'triangle', 'pentagon', 'star'可选
  • word_gap -> int
    单词间隔,默认为 20。
  • word_size_range -> list
    单词字体大小范围,默认为 [12, 60]。
  • rotate_step -> int
    旋转单词角度,默认为 45

1

2

3

4

5

6

7

8

9

10

11

12

13

from pyecharts import WordCloud

 

name = [

    'Sam S Club''Macys''Amy Schumer''Jurassic World''Charter Communications',

    'Chick Fil A''Planet Fitness''Pitch Perfect''Express''Home''Johnny Depp',

    'Lena Dunham''Lewis Hamilton''KXAN''Mary Ellen Mark''Farrah Abraham',

    'Rita Ora''Serena Williams''NCAA baseball tournament''Point Break']

value = [

    1000061814386405524672244189814841112,

    965847582555550462366360282273265]

wordcloud = WordCloud(width=1300, height=620)

wordcloud.add("", name, value, word_size_range=[20100])

wordcloud.render()

更多炫酷的效果图请参考:http://pyecharts.org/#/zh-cn/charts

数据解析

numpy 数据类型

add 数据直接支持 numpy.array 对象

1

2

3

4

5

6

7

8

from pyecharts import Bar

import numpy as np

 

clothes = ["衬衫""羊毛衫""雪纺衫""裤子""高跟鞋""袜子"]

v1 = np.array([52036107590])

bar = Bar("衣服销量")

bar.add("商家A", clothes, v1, is_stack=True)

bar.render()

zip 函数

在 pyecharts.base.Base.add(name, x_axis, y_axis) 函数中,数据参数通常要求数据是两个长度相等的列表。

1

2

3

4

5

6

7

8

9

from pyecharts import Line

 

t_data = [(21'2017-12-01'), (19'2017-12-02'), (20'2017-12-03')]

hs, ds = zip(*t_data)

print(hs) #(21, 19, 20)

print(ds) #('2017-12-01', '2017-12-02', '2017-12-03')

line = Line('High Temperature')

line.add('High', ds, hs)

line.render()

Base.cast 函数

数据格式化处理函数,能够将源数据转化为符合 pyecharts 的数据。

具体转化格式如下:

  1. 元组列表
    [(A1, B1), (A2, B2), (A3, B3), (A4, B4)] --> k_lst[ A[i1, i2...] ], v_lst[ B[i1, i2...] ]
  2. 字典列表
    [{A1: B1}, {A2: B2}, {A3: B3}, {A4: B4}] --> k_lst[ A[i1, i2...] ], v_lst[ B[i1, i2...] ]
  3. 字典
    {A1: B1, A2: B2, A3: B3, A4: B4} -- > k_lst[ A[i1, i2...] ], v_lst[ B[i1, i2...] ]

1

2

3

4

5

6

from pyecharts.base import Base

 

o_data = [('A''34'), ('B''45'), ('C''12')]

x, y = Base.cast(o_data)

print(x) # ['A', 'B', 'C']

print(y) # ['34', '45', '12']

borax.fetch 模块

borax 要求 Python3.5 以上,可以使用以下命令安装这个库,pip install borax

该模块使用 fetch 函数:fetch(iterable, key, *keys, default=EMPTY, defaults=None, getter=None)

各参数的意义如下:

  • iterable:数据列表
  • key / keys:键值、属性访问方式的索引
  • default:默认值,用于选择单个属性
  • defaults:默认值字典,用于选择多个属性
  • getter:自定义访问回调函数

应当注意的是,在使用时, default 、 defaults 和 getter 参数必须使用关键字方式传递

1

2

3

4

5

6

7

8

9

10

11

from borax.fetch import fetch

 

objects = [

    {'id'282'name''Alice''age'30},

    {'id'217'name''Bob''age'56},

    {'id'328'name''Charlie''age'56},

]

 

names, ages = fetch(objects, 'name''age')

print(names) #['Alice', 'Bob', 'Charlie']

print(ages) #[30, 56, 56]

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值