热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pyecharts无法在jupyterlab中显示的问题

一、概述最近有一些数据需要绘图分析,由于本人对excel不熟悉,查阅资料发现pandas+pyecharts对数据进行可视化分析非常方便,

一、 概述

最近有一些数据需要绘图分析,由于本人对excel不熟悉,查阅资料发现pandas + pyecharts对数据进行可视化分析非常方便,所以开始尝试使用。我这里通过anaconda自带的jupyterlab进行测试,但是使用过程中发现pyecharts的图表无法在jupyterlab上面显示,经过查阅资料解决了此问题,在这里做一个记录方便以后查阅。

这里使用的 pyecharts 版本:1.7.0

二、使用pyecharts

查看pyecharts的版本号:

import pyecharts

pyecharts.__version__

代码运行后并不能绘制出图像来,我是使用jupyter lab运行代码的,用notebook就可以。如下图所示:

from pyecharts.charts import Bar

x_value = ['A', 'B', 'C']
y1 = [123, 52, 214]
y2 = [45, 63, 161]

bar = (
    Bar()
    .add_xaxis(x_value)
    .add_yaxis(series_name='公司甲', yaxis_data=y1)
    .add_yaxis(series_name='公司乙', yaxis_data=y2)
)

bar.render_notebook()
pyecharts无法在jupyterlab中显示的问题
image.png

三、原因及解决方法

  • 原因
    不同的 notebook 环境有自己不同的渲染要求,pyecharts 在底层做了适配处理,但因为我们无法在import pyecharts的时候知道用户具体使用的是哪种 notebook 环境,所以需要用户在使用时在顶部声明环境类型。
  • 解决方法
    Jupyter Lab 渲染的时候有两点需要注意:

Jupyter Notebook 直接调用render_notebook随时随地渲染图表,默认为Jupter-Notebook

  1. Jupyter Lab中运行下面的两行代码即可:
from pyecharts.globals import CurrentConfig, NotebookType  
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
  1. 在第一次渲染的时候调用 load_Javascript() 会预先加载基本 Javascript 文件到 Notebook 中。如若后面其他图形渲染不出来,则请开发者尝试再次调用,因为 load_Javascript 只会预先加载最基本的 js 引用。而主题、地图等 js 文件需要再次按需加载。
  2. load_Javascript()render_notebook() 方法需要在不同的 cell 中调用,这是 Notebook 的内联机制,其实本质上我们是返回了带有 html, Javascript 对象的 class。notebook 会自动去调用这些方法。

修改后的代码如下:


from pyecharts.globals import CurrentConfig, NotebookType  
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
from pyecharts.charts import Bar
from pyecharts import options as opts
# 内置主题类型可查看 pyecharts.globals.ThemeType
from pyecharts.globals import ThemeType

bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
    .add_yaxis("商家B", [15, 6, 45, 20, 35, 66])
    .set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
)
bar.load_Javascript()
bar.render_notebook()

运行结果如下图:

pyecharts无法在jupyterlab中显示的问题
image.png

如果你按照上面的方式还是无法显示图形,可以按照下面的参考文档进行操作。

参考文章:
pyecharts无法在jupyterlab中显示问题

https://pyecharts.org/#/zh-cn/notebook


推荐阅读
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 本文介绍了SVD(奇异值分解)和QR分解的基本原理及其在Python中的实现方法。通过具体代码示例,展示了如何使用这两种矩阵分解技术处理图像数据和计算特征值。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 解决TensorFlow CPU版本安装中的依赖问题
    本文记录了在安装CPU版本的TensorFlow过程中遇到的依赖问题及解决方案,特别是numpy版本不匹配和动态链接库(DLL)错误。通过详细的步骤说明和专业建议,帮助读者顺利安装并使用TensorFlow。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • 本文探讨了为何相同的HTTP请求在两台不同操作系统(Windows与Ubuntu)的机器上会分别返回200 OK和429 Too Many Requests的状态码。我们将分析代码、环境差异及可能的影响因素。 ... [详细]
author-avatar
mobiledu2502900167
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有