51.pyecharts绘制基本图标

1.PyEcharts简介

1.1 概述

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。
Echarts官网网址:网址

1.2 PyEcharts特点

  • 简洁的 API 设计,使用如丝滑般流畅,支持链式调用
  • 囊括了 30+ 种常见图表,应有尽有
  • 支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab
  • 可轻松集成至 Flask,Django 等主流 Web 框架
  • 高度灵活的配置项,可轻松搭配出精美的图表
  • 详细的文档和示例,帮助开发者更快的上手项目
  • 多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持

1.3 安装

pip install pyecharts==1.9.1

查看pyecharts版本

import pyecharts
print(pyecharts.__version__)

2.快速体验PyEcharts

# 绘制柱状图
from pyecharts.charts import Bar
bar = Bar()
bar.add_xaxis(['A','B','C','D'])
bar.add_yaxis('',[1000,200,1400,2000])
bar.render()

# 支持链式调用
bar = (
    Bar()
    .add_xaxis(['A','B','C','D'])
    .add_yaxis('',[1000,300,1400,2000])
)
bar.render()

使用render返回时,会生成一个html文件,打开文件即可
在这里插入图片描述

3.全局配置项

from pyecharts.charts import Bar  # 绘制柱状图
from pyecharts.faker import Faker # 导入内置数据
from pyecharts import options as opts
bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家 A", Faker.values())
bar.add_yaxis('商家 B', Faker.values())
#  设置全局配置调用方法set_global_opts
bar.set_global_opts(
    # 标题设置:title主标题  subtitle副标题  pos_left相对左边的标题位置
    title_opts=opts.TitleOpts(title='主标题', subtitle='副标题', pos_left="left"),
    # 设置图例:默认时True
    legend_opts=opts.LegendOpts(is_show=True),
    # 设置工具箱
    toolbox_opts = opts.ToolboxOpts(),
    # 视觉映射配置项
    visualmap_opts=opts.VisualMapOpts(),
    # 设置坐标轴: is_show是否显示坐标轴  is_inverse反向显示 _min _max是切片横坐标轴
    xaxis_opts=opts.AxisOpts(is_show=True, is_inverse=False, min_=2, max_=4),
    yaxis_opts=opts.AxisOpts(is_show=False)
    )
bar.render_notebook()
# bar.render()

在这里插入图片描述

4.系列配置项

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.faker import Faker
# 设置主题
from pyecharts.globals import ThemeType
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
bar.add_xaxis(Faker.choose())
bar.add_yaxis("", Faker.values())
# 系列配置项:点
bar.set_series_opts(
    label_opts=opts.LabelOpts(is_show=False),
    markpoint_opts=opts.MarkPointOpts(data=[
        opts.MarkPointItem(type_='max',name='最大值'),
        opts.MarkPointItem(type_='min',name='最小值'),
        opts.MarkPointItem(type_='average',name='平均值')
    ])
)
bar.render_notebook()

在这里插入图片描述

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.faker import Faker
# 设置主题
from pyecharts.globals import ThemeType
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
bar.add_xaxis(Faker.choose())
bar.add_yaxis("", Faker.values())
# 系列配置项:线
bar.set_series_opts(
    label_opts=opts.LabelOpts(is_show=False),
    markline_opts=opts.MarkPointOpts(data=[
        opts.MarkLineItem(type_='max',name='最大值'),
        opts.MarkLineItem(type_='min',name='最小值'),
        opts.MarkLineItem(type_='average',name='平均值')
    ]),
#     设置颜色,可以去百度搜索RGB颜色表
    itemstyle_opts=opts.ItemStyleOpts(color='#C1FFC1')
)
bar.render_notebook()

在这里插入图片描述

5.绘制条形图

5.1 绘制柱状图

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.faker import Faker
# 绘制柱状图
bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis(Faker.choose())
    .add_yaxis("A",Faker.values())
    .add_yaxis("B",Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title='柱状图示例'))
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=False),
        markpoint_opts=opts.MarkPointOpts(
            data=[opts.MarkPointItem(type_='max',name='最大值')]
        )
    )
)
bar.render_notebook()

在这里插入图片描述

5.2 绘制条形图

# 绘制条形图
bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis(Faker.choose())
    .add_yaxis("A",Faker.values())
    .add_yaxis("B",Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title='条形图示例'))
    .set_series_opts(
        markline_opts=opts.MarkLineOpts(
        data=[
            opts.MarkLineItem(type_='合格指标',y=50),
            opts.MarkLineItem(name='平均值',type_="average")
        ]),
        label_opts=opts.LabelOpts(is_show=True, position='right')
    )
)
bar.reversal_axis()
bar.render_notebook()

在这里插入图片描述

5.3 绘制堆叠图

# 绘制堆叠图
bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis(Faker.choose())
    .add_yaxis("A",Faker.values(),stack='stack')
    .add_yaxis("B",Faker.values(),stack='stack')
)
bar.set_global_opts(title_opts=opts.TitleOpts(title='堆叠图'))
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
bar.render_notebook()

在这里插入图片描述

6.绘制直方图

直方图表示被存储到范围中的变量的值的频率以及分布情况。
在视觉上,直方图与柱状图很类似,但是直方图的柱间距为0。

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
# 绘制直方图
bar = Bar()
bar.add_xaxis(Faker.choose())
# 随机颜色的添加,更改柱之间的空隙
bar.add_yaxis("",Faker.values(),category_gap=0, color=Faker.rand_color())
# 添加标题
bar.set_global_opts(title_opts=opts.TitleOpts(title="直方图"))
bar.render_notebook()

在这里插入图片描述

7.绘制折线图

折线图官网

from pyecharts.charts import Line
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.faker import Faker

# 绘制折线图
line = Line(init_opts=opts.InitOpts(theme=ThemeType.DARK))
x_value = Faker.choose()
y_value = Faker.values()
line.add_xaxis(x_value)
# 让曲线变得圆滑:is_smooth True
# 设置标记点:MarkPointItem value:标记哪个点,coord:标记点的位置
line.add_yaxis("商家 A", y_value,is_smooth=True,
               markpoint_opts=opts.MarkPointOpts(
               data=[opts.MarkPointItem(name="自定义标记点",value=y_value[0], coord=[x_value[2],y_value[2]])]
               )     
              )
# 利用全局配置项,设置分隔线splitline_opts
line.set_global_opts(yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
line.render_notebook()

在这里插入图片描述

8.堆叠折线图和面积图

from pyecharts.charts import Line
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
from pyecharts import options as opts
# 绘制简单折线图——>绘制多条折线图(多添加几次add_yaxis)——>绘制堆叠图(stack)——>绘制面积图
line = Line(init_opts=opts.InitOpts(theme=ThemeType.DARK))
x_data = Faker.week
types = Faker.choose()
line.add_xaxis(x_data)
line.add_yaxis(types[0],Faker.values(),stack='总量')
line.add_yaxis(types[1],Faker.values(),stack='总量')
line.add_yaxis(types[2],Faker.values(),stack='总量')
line.add_yaxis(types[3],Faker.values(),stack='总量')
line.add_yaxis(types[4],Faker.values(),stack='总量')
line.add_yaxis(types[5],Faker.values(),stack='总量')
line.add_yaxis(types[6],Faker.values(),stack='总量')
# 去掉数量标记
line.set_series_opts(label_opts=opts.LabelOpts(is_show=False),
                    # 设置面积图填充颜色
                     areastyle_opts=opts.AreaStyleOpts(opacity=0.6)
                    )
# 利用全局配置项添加标题
line.set_global_opts(title_opts=opts.TitleOpts(title="面积图"),
                     # 当鼠标放在一个点时,同坐标数值都会进行显示
                     tooltip_opts=opts.TooltipOpts(trigger='axis'),
                     # 设置x坐标从头开始, 坐标轴两边留白解决 boundary_gap=False
                     xaxis_opts=opts.AxisOpts(boundary_gap=False)
                     
                    )
line.render_notebook()

在这里插入图片描述

9.绘制饼图

饼图官网网址

9.1 常规饼图

from pyecharts.charts import Pie
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
# 绘制饼图
pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK))
# 饼图存放数据的格式:整体数据是列表,每一个数据点也是以列表形式: [[],[],[],[]]
# 显示每一项的值:{a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
pie.add("", 
        data_pair=[list(z) for z in zip(Faker.choose(), Faker.values())], 
        label_opts=opts.LabelOpts(formatter="{b}:{d}"),
       )
pie.set_global_opts(title_opts=opts.TitleOpts(title="饼图"))
pie.render_notebook()

在这里插入图片描述

9.2空心饼图

from pyecharts.charts import Pie
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
# 绘制饼图
pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK))
# 饼图存放数据的格式:整体数据是列表,每一个数据点也是以列表形式: [[],[],[],[]]
# 显示每一项的值:{a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
pie.add("", 
        data_pair=[list(z) for z in zip(Faker.choose(), Faker.values())], 
        label_opts=opts.LabelOpts(formatter="{b}:{d}"),
        # 绘制空心饼图:['圆心的半径','外层的半径']
        radius=['50%','70%']
       )
pie.set_global_opts(title_opts=opts.TitleOpts(title="饼图"))
pie.render_notebook()

在这里插入图片描述

9.3 玫瑰形饼图

from pyecharts.charts import Pie
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
# 绘制饼图
pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK))
# 饼图存放数据的格式:整体数据是列表,每一个数据点也是以列表形式: [[],[],[],[]]
# 显示每一项的值:{a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
pie.add("", 
        data_pair=[list(z) for z in zip(Faker.choose(), Faker.values())], 
        label_opts=opts.LabelOpts(formatter="{b}:{d}"),
        # 玫瑰形饼图
        rosetype='radius'
       )
pie.set_global_opts(title_opts=opts.TitleOpts(title="饼图"))
pie.render_notebook()

在这里插入图片描述

10.绘制散点图

from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
from random import randint
# 绘制散点图
scatter = Scatter(init_opts=opts.InitOpts(theme=ThemeType.DARK))
x_value = [randint(0,100) for i in range(100)]
y_value = [randint(0,100) for i in range(100)]
scatter.add_xaxis(xaxis_data=x_value)
# 设置点的大小symbol_size 默认是10
# 设置点的形状symbol 默认是圆
scatter.add_yaxis("",y_axis=y_value, symbol_size=20)
# 散点图查看相关性,不需要显示点的值
scatter.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
# 此时的x值都是按照x_value的顺序来的,不是从小到大。修改x轴坐标
scatter.set_global_opts(
    xaxis_opts=opts.AxisOpts(type_="value"),
    # 添加视觉配置项
    visualmap_opts=opts.VisualMapOpts()
                       )
scatter.render_notebook()

在这里插入图片描述

11.绘制箱图

from pyecharts.charts import Boxplot
from pyecharts.globals import ThemeType
from pyecharts import options as opts
from random import randint
# 绘制散点图
box = Boxplot(init_opts=opts.InitOpts(theme=ThemeType.DARK))
box.add_xaxis([f'exp{i}' for i in range(1,5)])
# 利用prepare_data处理列表数据后,才能绘制出标准的盒须图, A不做处理,B处理
box.add_yaxis('A',
                   [[randint(30,100) for i in range(50)],
                   [randint(40,100) for i in range(50)],
                   [randint(50,100) for i in range(50)],
                   [randint(60,100) for i in range(50)]],
             )
box.add_yaxis('B', box.prepare_data(
                   [[randint(90,100) for i in range(50)],
                   [randint(80,100) for i in range(50)],
                   [randint(70,100) for i in range(50)],
                   [randint(60,100) for i in range(50)]]),
             )
box.set_global_opts(title_opts=opts.TitleOpts(title='盒须图'))
box.render_notebook()

在这里插入图片描述

12.绘制热力图

from pyecharts.charts import HeatMap
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.globals import ThemeType
import random
# 绘制热力图
hm = HeatMap(init_opts=(opts.InitOpts(theme=ThemeType.DARK)))
hm.add_xaxis(Faker.clock)
data = [[i,j,random.randint(-20,40)] for i in range(24) for j in range(7)]
hm.add_yaxis('',Faker.week,data)
hm.set_global_opts(visualmap_opts=opts.VisualMapOpts(min_=-20,max_=50),
                   title_opts=opts.TitleOpts(title='绘制热力图')
                  )
# 显示数据到方格中,本身就有显示,需要修改位置
hm.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position='inside'))
hm.render_notebook()

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要使用pyecharts绘制非洲地图,需要先安装pyechartspyecharts_maps模块。可以使用以下命令安装: ``` pip install pyecharts pip install pyecharts_maps ``` 然后,可以使用以下代码绘制非洲地图: ```python from pyecharts import options as opts from pyecharts.charts import Map # 定义数据 data = [('Algeria', 42.3), ('Angola', 28.8), ('Benin', 10.6), ('Botswana', 2.3), ('Burkina Faso', 20.3), ('Burundi', 11.2), ('Cameroon', 24.6), ('Cape Verde', 0.5), ('Central African Republic', 4.5), ('Chad', 15.8), ('Comoros', 0.8), ('Congo-Brazzaville', 5.3), ('Congo-Kinshasa', 84.1), ('Cote d\'Ivoire', 22.7), ('Djibouti', 1), ('Egypt', 98.4), ('Equatorial Guinea', 1.3), ('Eritrea', 3.5), ('Ethiopia', 114.9), ('Gabon', 2.1), ('Gambia', 2.3), ('Ghana', 31.5), ('Guinea', 12.4), ('Guinea-Bissau', 1.8), ('Kenya', 52.6), ('Lesotho', 2.2), ('Liberia', 4.8), ('Libya', 6.4), ('Madagascar', 28.4), ('Malawi', 18.6), ('Mali', 19.1), ('Mauritania', 4.5), ('Mauritius', 1.3), ('Morocco', 35.7), ('Mozambique', 28.8), ('Namibia', 2.5), ('Niger', 21.5), ('Nigeria', 200.9), ('Rwanda', 12.2), ('Sao Tome and Principe', 0.2), ('Senegal', 15.9), ('Seychelles', 0.1), ('Sierra Leone', 7.7), ('Somalia', 15.4), ('South Africa', 59.3), ('South Sudan', 11.1), ('Sudan', 43.9), ('Swaziland', 1.1), ('Tanzania', 59.7), ('Togo', 7.6), ('Tunisia', 11.7), ('Uganda', 44.2), ('Western Sahara', 0.6), ('Zambia', 17.7), ('Zimbabwe', 14.4)] # 创建Map对象 map = ( Map() .add("GDP per capita", data, "Africa") .set_global_opts( title_opts=opts.TitleOpts(title="非洲各国GDP人均表现"), visualmap_opts=opts.VisualMapOpts(max_=200), ) ) # 渲染图表 map.render("africa.html") ``` 运行完毕后,会生成一个名为"africa.html"的html文件,里面包含绘制好的地图。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为数据分析师的开发工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值