在 Pyecharts 中,我们可以使用它自带的 Faker 这个库来生成模拟数据。使用了模拟数据,我们就不需要手动去指定数据了,这样可以很方便去学习 Pyecharts 的各种图表。
语法:
from pyecharts.faker import Faker
说明:
我们需要从 pyecharts.faker 模块中导入 Faker 这个库。对于 Faker 库来说,它常用的属性如下表所示。
| 属性 | 说明 | 取值 |
|---|---|---|
| visual_color | 随机颜色 | ['#313695', '#4575b4', …, '#74add1'] |
| months | 12 个月份 | ['1月', '2月', …, '12月'] |
| clock | 时间字符 | ['12a', '1a', …, '11p'] |
| week | 中文星期 | ['周一', '周二', …, '周日'] |
| week_en | 英文星期 | ['Saturday', 'Friday', …, 'Sunday'] |
| country | 国家 | ['China', 'Canada', …, 'Germany'] |
| provinces | 省份 | ['广东', '北京', …, '江苏'] |
| guangdong_city | 城市(广东) | ['汕头市', '汕尾市', …, '惠州市'] |
| clothes | 衣服 | ['衬衫', '毛衣', …, '袜子'] |
| fruits | 水果 | ['草莓', '芒果', …, '车厘子'] |
| drinks | 饮料 | ['可乐', '雪碧', …, '青岛'] |
| phones | 手机 | ['小米', '三星', …, 'OPPO'] |
| cars | 汽车 | ['宝马', '法拉利', …, '特斯拉'] |
| animal | 动物 | ['河马', '蟒蛇', …, '狮子'] |
| dogs | 小狗 | ['哈士奇', '萨摩耶', …, '柯基'] |
除了表中的属性之外,Faker 库还提供了 2 种方法:values() 和 choose()。Faker.values(start, end) 返回的是一个数值型的列表,列表每一个数的取值范围是 [start, end]。
对于 Faker.choose() 这个方法,它是从下面这 7 个中选一个结果来返回。
- Faker.week
- Faker.phones
- Faker.clothes
- Faker.drinks
- Faker.fruits
- Faker.animal
- Faker.dogs
对于 Faker 库,我们只需要记住一点:Faker 的所有属性和方法都会生成一个列表型的数据。
示例 1:Faker 属性
from pyecharts.faker import Faker
print(Faker.visual_color)
运行结果如下。
['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
示例 2:Faker.values()
from pyecharts.faker import Faker
print(Faker.values(100, 1000))
运行结果如下。
[907, 382, 237, 232, 212, 619, 804]
示例 3:Faker.choose()
from pyecharts.faker import Faker
print(Faker.choose())
运行结果如下。
['小米', '三星', '华为', '苹果', '魅族', 'VIVO', 'OPPO']
示例 4:Pyecharts 使用 Faker 绘制折线图
from pyecharts.charts import Line
from pyecharts.faker import Faker
# 数据
clothes = Faker.clothes
values = Faker.values()
# 绘图
line = Line()
line.add_xaxis(xaxis_data=clothes)
line.add_yaxis(series_name='衣服销量', y_axis=values)
# 渲染
line.render()
运行生成的 render.html,浏览器效果如下图所示。

分析:
对于这个例子来说,Faker.clothes 会生成这样一个列表:['衬衫', '毛衣', '领带', '裤子', '风衣', '高跟鞋', '袜子'],而 Faker.values() 会生成这样一个列表:[95, 122, 26, 42, 148, 144, 39]。
示例 5:Pyecharts 使用 Faker 绘制柱形图
import pandas as pd
from pyecharts.charts import Bar
from pyecharts.faker import Faker
# 数据
months = Faker.months
values = Faker.values()
# 绘图
bar = Bar()
bar.add_xaxis(xaxis_data=months)
bar.add_yaxis(series_name='上衣', y_axis=values)
# 渲染
bar.render()
运行生成的 render.html,浏览器效果如下图所示。

分析:
对于这个例子来说,Faker.months 会生成这样一个列表:['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],而 Faker.values() 会生成这样一个列表:[44, 48, 27, 55, 122, 65, 41]。
示例 6:Pyecharts 使用 Faker 绘制地图
from pyecharts.charts import Map
import pyecharts.options as opts
from pyecharts.faker import Faker
# 数据
data = []
for x in zip(Faker.guangdong_city, Faker.values()):
data.append(x)
# 绘图
map = Map()
map.add(series_name='各城市销量统计', data_pair=data, maptype='广东')
# 添加颜色区分
map.set_global_opts(visualmap_opts=opts.VisualMapOpts(
type_='color',
pos_bottom=50,
pos_right=0
))
# 渲染
map.render()
运行生成的 render.html,浏览器效果如下图所示。

分析:
data = []
for x in zip(Faker.guangdong_city, Faker.values()):
data.append(x)
在这个例子中,上面这一段代码会生成下面这样一个列表。
[('汕头市', 122), ('汕尾市', 119), ('揭阳市', 77), ('阳江市', 37), ('肇庆市', 108), ('广州市', 63), ('惠州市', 31)]
