10-pyecharts绘图
前言
一、pyecharts安装
pip install pyecharts
from pyecharts import options as opts # 导入配置项
from pyecharts.charts import * # 导入所有图表
二、使用步骤
1.柱状图
代码如下(示例):
# 数据
months = ['一月', '二月', '三月', '四月', '五月', '六月']
cost = [1200, 1500, 1800, 1400, 1600, 2000]
bar = (
Bar()
.add_xaxis(months) # 添加x轴的数据
.add_yaxis('消费金额',cost,bar_width=50) # 添加y轴的数据,第一个参数为系列名称,不能省略
)
# 直接在jupyter里面显示
bar.render_notebook() # pycharm不能使用这种方式
法二:保存到本地--- 在pycharm里使用这个方法
bar.render('./cost.html')
2.散点图
代码如下(示例):
months = ['一月', '二月', '三月', '四月', '五月', '六月']
cost = [1200, 1500, 1800, 1400, 1600, 2000]
scatter = (
Scatter()
.add_xaxis(months) # 添加x轴的数据
.add_yaxis('消费金额',cost) # 添加y轴的数据,第一个参数为系列名称,不能省略
)
# 直接在jupyter里面显示
scatter.render_notebook()
多组数据:
# 多组数据
cities = ['北京', '上海', '广州', '深圳', '成都', '重庆']
temperatures = [32, 33, 30, 31, 28, 30]
humidity = [40, 50, 70, 65, 45, 55]
scatter2 = (
Scatter()
.add_xaxis(cities) # 添加x轴的数据
.add_yaxis('气温',temperatures) # 添加y轴的数据
.add_yaxis('温度',humidity)
)
scatter2.render_notebook()
3.饼图
饼图里面参数需要打包为元组形式
fruits = ['苹果', '香蕉', '橙子', '草莓', '葡萄']
sales = [45, 30, 25, 20, 15]
pie =(
Pie()
.add(
series_name='水果',
data_pair = [list(z) for z in zip(fruits,sales)], # 添加数据对
radius =['30%','60%'],
label_opts = opts.LabelOpts(formatter="{b}:{d}%")
)
)
pie.render_notebook()
4.南丁格尔图
fruits = ['苹果', '香蕉', '橙子', '草莓', '葡萄']
sales = [45, 30, 25, 20, 15]
pie =(
Pie()
.add(
series_name='水果',
data_pair = [list(z) for z in zip(fruits,sales)], # 添加数据对
radius =['30%','60%'],
rosetype='radius',
label_opts = opts.LabelOpts(formatter="{b}:{d}%")
)
)
pie.render_notebook()
三、Geo绘制地图
import random
from pyecharts.charts import Geo
import pyecharts.options as opts
import random
from pyecharts.charts import Geo
import pyecharts.options as opts
province = [
'广东省',
'湖北省',
'湖南省',
'四川省',
'重庆市',
'黑龙江省',
'浙江省',
'山西省',
'河北省',
'安徽省',
'河南省',
'山东省',
'西藏']
data = [(i, random.randint(50, 150)) for i in province]
print(data)
geo = (
Geo()
.add_schema(maptype='china')
.add("",data)
)
geo.render_notebook()
四、Map地图
# 区域地图
from pyecharts.faker import Faker
c = (
Map()
.add('商家A',[list(z) for z in zip(Faker.guangdong_city,Faker.values())],"广东")
# 图表实例.set_global_opts(配置项名称=opts.配置项类名({配置项key:value}))
.set_global_opts(title_opts=opts.TitleOpts(title='广东地图'),
visualmap_opts=opts.VisualMapOpts()
)
)
c.render_notebook()
五、词云图
words = [
("hey", 230),
("jude", 124),
("dont", 436),
("make", 255),
("it", 247),
("bad", 244),
("Take", 138),
("a sad song", 184),
("and", 12),
("make", 165),
("it", 247),
("better", 182),
("remember", 255),
("to", 150),
("let", 162),
("her", 266),
("into", 60),
("your", 82),
("heart", 173),
("then", 365),
("you", 360),
("can", 282),
("start", 273),
("make", 265),
]
wc = (
WordCloud()
.add("",words)
)
wc.render_notebook()
六、层叠图
# 不同的图表组合
x_data = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']
y_data_bar = [123, 153, 89, 107, 98, 23]
y_data_line = [153, 107, 23, 89, 123, 107]
# 柱状图
bar1 = (Bar()
.add_xaxis(x_data)
.add_yaxis('',y_data_bar)
)
# 折线图
line1 = (Line()
.add_xaxis(x_data)
.add_yaxis('',y_data_line)
)
bar1.set_series_opts(zlevel=1) # 柱状图为第一层
line1.set_series_opts(zlevel=2) # 折线图为第二层
overlap = bar1.overlap(line1) # 层叠
overlap.render_notebook()
七、3D立体图
# 3D
data = [[1,2,3],
[4,5,6],
[7,8,9]
]
bar3d = Bar3D()
bar3d.add("",data)
bar3d.render_notebook()
八、高级设置
ThemeType主题类型
from pyecharts.globals import ThemeType
# 数据
months = ['一月', '二月', '三月', '四月', '五月', '六月']
cost = [1200, 1500, 1800, 1400, 1600, 2000]
bar = (
Bar(init_opts=opts.InitOpts(width='600px',height='400px',theme=ThemeType.LIGHT))
.add_xaxis(months) # 添加x轴的数据
.add_yaxis('消费金额',cost,bar_width=50) # 添加y轴的数据,第一个参数为系列名称,不能省略
)
# 直接在jupyter里面显示
bar.render_notebook() # pycharm不能使用这种方式
总结
模板: 全局配置项 set_global_opts 设置全局配置项 图表实例.set_global_opts(配置项名称=opts.配置项类名({配置项key:value})) 系列配置项 图表实例.set_series_opts(配置项名称=opts.配置项类名({配置项key:value}))