Pyecharts可视化_from pyecharts.globals import currentconfig, noteb-程序员宅基地

技术标签: pandas  python  数据分析  基础扎实  

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 北京市 北京 63239 9240
1 重庆市 重庆 10351 5962
2 广州市 广东 30894 7409
3 上海市 上海 52240 8962
4 深圳市 NaN 52456 8315

柱形图可视化

# 下面指定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)]


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_53742691/article/details/126200124

智能推荐

Docker 快速上手学习入门教程_docker菜鸟教程-程序员宅基地

文章浏览阅读2.5w次,点赞6次,收藏50次。官方解释是,docker 容器是机器上的沙盒进程,它与主机上的所有其他进程隔离。所以容器只是操作系统中被隔离开来的一个进程,所谓的容器化,其实也只是对操作系统进行欺骗的一种语法糖。_docker菜鸟教程

电脑技巧:Windows系统原版纯净软件必备的两个网站_msdn我告诉你-程序员宅基地

文章浏览阅读5.7k次,点赞3次,收藏14次。该如何避免的,今天小编给大家推荐两个下载Windows系统官方软件的资源网站,可以杜绝软件捆绑等行为。该站提供了丰富的Windows官方技术资源,比较重要的有MSDN技术资源文档库、官方工具和资源、应用程序、开发人员工具(Visual Studio 、SQLServer等等)、系统镜像、设计人员工具等。总的来说,这两个都是非常优秀的Windows系统镜像资源站,提供了丰富的Windows系统镜像资源,并且保证了资源的纯净和安全性,有需要的朋友可以去了解一下。这个非常实用的资源网站的创建者是国内的一个网友。_msdn我告诉你

vue2封装对话框el-dialog组件_<el-dialog 封装成组件 vue2-程序员宅基地

文章浏览阅读1.2k次。vue2封装对话框el-dialog组件_

MFC 文本框换行_c++ mfc同一框内输入二行怎么换行-程序员宅基地

文章浏览阅读4.7k次,点赞5次,收藏6次。MFC 文本框换行 标签: it mfc 文本框1.将Multiline属性设置为True2.换行是使用"\r\n" (宽字符串为L"\r\n")3.如果需要编辑并且按Enter键换行,还要将 Want Return 设置为 True4.如果需要垂直滚动条的话将Vertical Scroll属性设置为True,需要水平滚动条的话将Horizontal Scroll属性设_c++ mfc同一框内输入二行怎么换行

redis-desktop-manager无法连接redis-server的解决方法_redis-server doesn't support auth command or ismis-程序员宅基地

文章浏览阅读832次。检查Linux是否是否开启所需端口,默认为6379,若未打开,将其开启:以root用户执行iptables -I INPUT -p tcp --dport 6379 -j ACCEPT如果还是未能解决,修改redis.conf,修改主机地址:bind 192.168.85.**;然后使用该配置文件,重新启动Redis服务./redis-server redis.conf..._redis-server doesn't support auth command or ismisconfigured. try

实验四 数据选择器及其应用-程序员宅基地

文章浏览阅读4.9k次。济大数电实验报告_数据选择器及其应用

随便推点

灰色预测模型matlab_MATLAB实战|基于灰色预测河南省社会消费品零售总额预测-程序员宅基地

文章浏览阅读236次。1研究内容消费在生产中占据十分重要的地位,是生产的最终目的和动力,是保持省内经济稳定快速发展的核心要素。预测河南省社会消费品零售总额,是进行宏观经济调控和消费体制改变创新的基础,是河南省内人民对美好的全面和谐社会的追求的要求,保持河南省经济稳定和可持续发展具有重要意义。本文建立灰色预测模型,利用MATLAB软件,预测出2019年~2023年河南省社会消费品零售总额预测值分别为21881...._灰色预测模型用什么软件

log4qt-程序员宅基地

文章浏览阅读1.2k次。12.4-在Qt中使用Log4Qt输出Log文件,看这一篇就足够了一、为啥要使用第三方Log库,而不用平台自带的Log库二、Log4j系列库的功能介绍与基本概念三、Log4Qt库的基本介绍四、将Log4qt组装成为一个单独模块五、使用配置文件的方式配置Log4Qt六、使用代码的方式配置Log4Qt七、在Qt工程中引入Log4Qt库模块的方法八、获取示例中的源代码一、为啥要使用第三方Log库,而不用平台自带的Log库首先要说明的是,在平时开发和调试中开发平台自带的“打印输出”已经足够了。但_log4qt

100种思维模型之全局观思维模型-67_计算机中对于全局观的-程序员宅基地

文章浏览阅读786次。全局观思维模型,一个教我们由点到线,由线到面,再由面到体,不断的放大格局去思考问题的思维模型。_计算机中对于全局观的

线程间控制之CountDownLatch和CyclicBarrier使用介绍_countdownluach于cyclicbarrier的用法-程序员宅基地

文章浏览阅读330次。一、CountDownLatch介绍CountDownLatch采用减法计算;是一个同步辅助工具类和CyclicBarrier类功能类似,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。二、CountDownLatch俩种应用场景: 场景一:所有线程在等待开始信号(startSignal.await()),主流程发出开始信号通知,既执行startSignal.countDown()方法后;所有线程才开始执行;每个线程执行完发出做完信号,既执行do..._countdownluach于cyclicbarrier的用法

自动化监控系统Prometheus&Grafana_-自动化监控系统prometheus&grafana实战-程序员宅基地

文章浏览阅读508次。Prometheus 算是一个全能型选手,原生支持容器监控,当然监控传统应用也不是吃干饭的,所以就是容器和非容器他都支持,所有的监控系统都具备这个流程,_-自动化监控系统prometheus&grafana实战

React 组件封装之 Search 搜索_react search-程序员宅基地

文章浏览阅读4.7k次。输入关键字,可以通过键盘的搜索按钮完成搜索功能。_react search