Pyecharts可视化

PyEcharts

所有文章不设限,我们相遇偶然,相散坦然,互不打扰,各自安好,向阳而生

pyecharts中文手册:https://pyecharts.org/#/

查看版本

import pyecharts
pyecharts.__version__
'1.9.1'

版本安装说明

在这里插入图片描述

jupyter lab使用注意事项

在这里插入图片描述

导入库

from pyecharts.globals import ThemeType, SymbolType, ChartType
import seaborn as sns
#警告
import warnings
from pylab import *
from collections import Counter
from pyecharts.commons.utils import JsCode
from pyecharts import options as opts
#散点图
from pyecharts.charts import Scatter
#日历
from pyecharts.charts import Calendar
#饼图
from pyecharts.charts import Pie
#折线
from pyecharts.charts import Line
#柱状图
from pyecharts.charts import Bar
#3D地球视图
from pyecharts.charts import Geo
#图像合并
from pyecharts.charts import Grid
#图像组合组件
from pyecharts.charts import Page
#地图
from pyecharts.charts import Map
#仪表盘
from pyecharts.charts import Gauge
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import jieba
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
mpl.rcParams['font.sans-serif'] = ['SimHei']
#忽略警告
warnings.filterwarnings("ignore")

数据读取

首先读取数据:

import pandas as pd
data = pd.read_excel('../data/xlsx/房价与工资.xlsx')

数据预览

data.head(5)
城市省份房屋均价人均工资
0北京市北京632399240
1重庆市重庆103515962
2广州市广东308947409
3上海市上海522408962
4深圳市NaN524568315

柱形图可视化

# 下面指定x轴和y轴:
x = list(data['城市'])
y1 = list(data['房屋均价'])
y2 = list(data['人均工资'])
# '''水平条形图'''
from pyecharts.charts import Bar

bar = Bar(
    # 设置主题
    init_opts=opts.InitOpts(theme=ThemeType.LIGHT),

)
bar.set_global_opts(
    # 设置标题样式
    title_opts=opts.TitleOpts(
        # 标题名称
        title='城市房屋均价,人均工资',
        # 设置标题位置
        pos_left='40%',
    ),
    # 设置图例样式
    legend_opts=opts.LegendOpts(
        # 是否显示图例
        is_show=True,
        # 设置图例位置
        pos_top='10%',
        # 设置图例形状
        legend_icon='circle'
    ),

    # 设置工具框样式
    toolbox_opts=opts.ToolboxOpts(
        # 是否显示工具框
        is_show=True,
        # 设置位置(方法一致)
        pos_left='70%',
        pos_top='20%'
    )
)
# 添加 x 轴数据
bar.add_xaxis(x)
# 添加 y 轴数据
bar.add_yaxis(
    # 设置 y1图例的名称
    series_name='房屋均价',
    # 设置 y1 数据
    y_axis=y1,
)
bar.add_yaxis('人均工资', y2)
# 加载js
bar.load_javascript()

<pyecharts.render.display.Javascript at 0x16ce7437a30>
# 显示图像
bar.render_notebook()

在这里插入图片描述

折线图可视化

x=['2022','2023','2024','2025','2026']
y=[10000,15000,20000,30000,40000]
line = Line(
      # 设置主题
    init_opts=opts.InitOpts(theme=ThemeType.LIGHT,
                           bg_color='rgba(255,250,205,0.2)'),
)
line.add_xaxis(x)
line.add_yaxis(
    # 设置 y1轴图例名称
    series_name='年预期营销额',
    # 设置 y1轴图例数据
    y_axis=y,
    # 数据标记是否显示(此处显示)
    is_symbol_show=True,
    # 标记大小
    symbol_size=15,
    # 设置线条样式
    linestyle_opts=opts.LineStyleOpts(
        # 设置线条颜色
        color='#FF6600',
        # 设置线条粗细
        width=5,
        # 设置线条透明度
        opacity=0.9
    )
)
line.load_javascript()
line.render_notebook()

在这里插入图片描述

饼图可视化

数据整合

# x 轴的标签数据
inner_x_data =['房屋租赁','店面设计','设备购置','办公用具','员工输出','营销培训','维护增值']
# y 轴的数值数据
inner_y_data =[20000,5000,5000,5000,10000,2000,5000]
# 数据压缩打包|
inner_data_pair = [list(z) for z in zip(inner_x_data, inner_y_data)]
pie = Pie(
    # 设置主题
    init_opts=opts.InitOpts(theme=ThemeType.LIGHT,
                           bg_color='rgba(255,250,205,0.2)'),
)
# 设置全局属性
pie.set_global_opts(
    # 设置标题属性
    title_opts=opts.TitleOpts(
        # 设置标题名称
        title='初期投入预算',
        # 设置标题位置
        pos_top='15%',
        # 设置标题样式
        title_textstyle_opts=opts.TextStyleOpts(
            # 颜色
            color='orange',
            # 字体大小
            font_size=25,
            # 字体样式
            font_family='楷体'
        )

    ),
      # 设置工具框样式
    toolbox_opts=opts.ToolboxOpts(
        # 是否显示工具框
        is_show=True,
        # 设置位置(方法一致)
        pos_left='70%',
        pos_top='20%'
    )
)
pie.add(
    series_name='初期投入预算',
    data_pair=inner_data_pair
)
pie.load_javascript()
pie.render_notebook()

在这里插入图片描述

上下绘制条形图和线图

# 柱状图
bar = Bar()
bar.add_xaxis(x)
bar.add_yaxis('房屋均价', y1)
bar.add_yaxis("人均工资", y2)
bar.render_notebook()
# 折线图
line = Line()
line.add_xaxis(x)
line.add_yaxis('房屋均价', y1)
line.add_yaxis('人均工资', y2)
line.render_notebook()
# 图例合并
# 调用了page组件
page = Page(layout=Page.DraggablePageLayout)
# 将上面定义好的图添加到 page
page.add(
    bar,
    line,
)
page.load_javascript()

<pyecharts.render.display.Javascript at 0x1c04d3e5bb0>
page.render_notebook()

在这里插入图片描述

条形图上叠加线图

# 柱状图
bar = Bar()
bar.add_xaxis(x)
bar.add_yaxis(
    series_name='房屋均价',
    y_axis=y1,
    # 设置柱状图标签属性(避免图像太乱)
    label_opts=opts.LabelOpts(
        # 设置柱状图标签属性隐藏
        is_show=False
    ),
)
bar.add_yaxis(
    series_name="人均工资",
    y_axis=y2,
    # 设置柱状图标签属性
    label_opts=opts.LabelOpts(
        # 设置柱状图标签属性隐藏
        is_show=False
    ),

)

# 折线图
line = Line()
line.add_xaxis(x)
line.add_yaxis(
    series_name='房屋均价',
    y_axis=y1,
    # 设置折线属性(容易识别)
    linestyle_opts=opts.LineStyleOpts(
        # 颜色
        color='#66CCFF',
        # 粗细
        width=6
    )
)
line.add_yaxis(
    series_name='人均工资',
    y_axis=y2,
    # 设置折线属性(容易识别)
    linestyle_opts=opts.LineStyleOpts(
        color='#FFCCCC',
        width=6
    )
)

bar.overlap(line)
bar.load_javascript()
<pyecharts.render.display.Javascript at 0x1c04d2dcb20>
bar.render_notebook()

在这里插入图片描述

仪表盘可视化

c = (
    Gauge()
    .add(
        "指示器",
        [("完成比率", 75.5)],
        # 设置仪表盘大小
        radius="60%",
        # 设置起始、终止刻度
        min_=0, max_=260,
        title_label_opts=opts.LabelOpts(
            font_size=20, color="black", font_family="Microsoft YaHei"  # 设置字体、颜色、大小
        ),
        axisline_opts=opts.AxisLineOpts(
            linestyle_opts=opts.LineStyleOpts(
                # 设置区间颜色、仪表宽度
                color=[(0.3, "#67e0e3"), (0.7, "#37a2da"), (1, "#fd666d")],
                # 设置仪表盘宽度
                width=25
            )
        ),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="仪 表 盘 可 视 化",
            pos_left='41%'
        ),
        legend_opts=opts.LegendOpts(
            is_show=False
        ),
    )

)
c.render_notebook()

在这里插入图片描述

地图

Pyecharts这个库,实现地图可视化的时候,地图一直加载不出来。

自从 v0.3.2 开始,为了缩减项目本身的体积以及维持 pyecharts 项目的轻量化运行,pyecharts 将不再自带地图 js 文件。

如用户需要用到地图图表,可自行安装对应的地图文件包。

全球国家地图: echarts-countries-pypkg:世界地图和 213 个国家,包括中国地图。
中国省级地图: echarts-china-provinces-pypkg:23 个省,5 个自治区。
中国市级地图: echarts-china-cities-pypkg:370 个中国城市
中国县区级地图:echarts-china-counties-pypkg:2882 个中国县·区
中国区域地图:echarts-china-misc-pypkg:11 个中国区域地图,比如华南、华北。
英国2016选区图: echarts-united-kingdom-pypkg:英国选区图可以用来画与政治经济相关的数据
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install echarts-china-misc-pypkg

全国省份地图

data = [('北京', 12.54), ('天津', 13.02), ('河北', 13.0), ('山西', 11.53), ('内蒙古', 11.48), ('辽宁', 15.43), ('吉林', 13.21), ('黑龙江', 13.03), ('上海', 15.07), ('江苏', 15.99), ('浙江', 13.89), ('安徽', 15.01), ('福建', 11.42), ('江西', 11.44), ('山东', 14.75), ('河南', 12.73), ('湖北', 13.93), ('湖南', 14.54), ('广东', 9.73), ('广西', 13.12), ('海南', 11.33), ('重庆', 17.42), ('四川', 16.3), ('贵州', 12.84), ('云南', 11.06), ('西藏', 7.67), ('陕西', 12.85), ('甘肃', 12.44), ('青海', 9.45), ('宁夏', 9.67), ('新疆', 9.66)]
city=[]
value=[]
for i in range(len(data)):
    city.append(data[i][0])
    value.append(data[i][1])
inner_data_pair = [list(z) for z in zip(city, value)]
map= Map()
map.add('',inner_data_pair,'china')
map.set_global_opts(

    title_opts=opts.TitleOpts(title="各省总体情况",
                              pos_right="center",
                              pos_top="5%"),
                              
    visualmap_opts=opts.VisualMapOpts(
        max_=18,
        min_=9
                                     )
    )
map.load_javascript()
<pyecharts.render.display.Javascript at 0x1c04d350e50>
map.render_notebook()

在这里插入图片描述

指定省份城市地图

#数据引入
from pyecharts.faker import Faker

c = (
    Map()
    .add("广东省", [list(z) for z in zip(Faker.guangdong_city, Faker.values())], "广东")
    .set_global_opts(
        title_opts=opts.TitleOpts(title="广东地图"), visualmap_opts=opts.VisualMapOpts()
    )
)
c.load_javascript()
<pyecharts.render.display.Javascript at 0x1c04d3fe4f0>
c.render_notebook()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YugbZu8v-1659786332428)(attachment:b0fe1fbf-0591-4c91-bcb5-34eb054510ec.png)]


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

IT小辉同学

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

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

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

打赏作者

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

抵扣说明:

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

余额充值