太神奇了,一行命令行将Notebook转换成PPT动态网页!

很多时候我们需要做一些数据分析的网页展示,或者例如图像处理这样的网页小工具,并分享给不在同一局域网内的人看,而代码都是写在jupyter notebook上面,这个时候就需要能有一个后端的框架,将其转换为一个网页应用,如下图所示

2f5e63ee3e0991ecd571ead6efc50405.gif

6e2fe20cc3a86a7a055f9c8296906fc2.png

今天小编就来分享一个能够将jupyter notebook转化为网页应用的工具,Mercury,当然除此之还能实现图片和文件的上传,参数变量的自定义取值和生成文件的下载等功能!

小试牛刀

我们先来简单地写一个案例,在开始之前我们需要安装好该模块,使用到pip命令

pip install mljar-mercury
pip install jupyter_contrib_nbextensions

最近的世界杯正在如火如荼的举办着,我们就直接打印出Hello Qatar即可,代码如下

Country = "Qatar"
print(f"Hello {Country}!!")

output

Hello Qatar!!

紧接着我们需要在最开始新建一个raw形式的单元格,里面放置的YAML格式的配置说明,大致就是简单介绍一下该应用的功能,然后指定参数变量的可变范围,格式如下

---
title: Hello 🌍🪐
description: Hello WorldCup
params:
    country:
        input: select
        label: Please select a country
        value: Qatar
        choices: [Qatar, Brazil, England, Germany, Argentina, Japan, France, Spain]
---

最后我们打开命令行工具,然后cd到当前notebook文件所在的位置,运行下面这一行命令

mercury run 文件名.ipynb

最后我们在自己的浏览器当中输入localhost:8000便会弹出如下所示的窗口

8a100262d656fd4f8d5ffa2e57ec015a.png

然后我们点击进去便会看到如下的页面

ab94dc7f4d6ac4d47f62dc470151c2b8.png

我们可以修改输入的变量,输出的结果也会随之发生更改,如下图所示

7f64cc306969ec321672ee6ce6977c44.gif

拓展延伸

接下来我们来更进一步,制作一个基于plotly数据可视化的网页应用,整体的代码非常简单,我们首先导入内置的数据集

import plotly.express as px
df = px.data.gapminder()
df

output

155218752ab7cfccd2ac73bac566c387.png

我们绘制出来2007年的时候世界各国的人口分布,代码如下

plt.figure(figsize=(12,6))
plt.rcParams.update({'font.size': 22})
_ = plt.hist(df.query(f"year=={year}")["lifeExp"], bins=40)
_ = plt.title(f"gdpPercap year={year}")

output

28a79fd9b99d36de96d013570957cc1e.png

然后我们再来绘制一张随着时间的迁移,人均GDP和人均寿命之间的关系,因此我们还需要在图表的底下添加一条时间轴,代码如下

px.scatter(df, x="gdpPercap", y="lifeExp", animation_frame="year", animation_group="country",
           size="pop", color="continent", hover_name="country",
           log_x=True, size_max=55, range_x=[100,100000], range_y=[25,90], 
           template="plotly_dark")

output

cbb6ec13f87475ca6c336adcd5567266.gif

而最后我们在页面上展示出来的效果是,公众号后台回复【20221122】获取源代码

3a2bae7482e03b4d14d47d6cfaed3b44.gif

NO.1

往期推荐

Historical articles

20条超全建议!让你轻松搞定高质量数据可视化~~

菜鸟程序员在Python编程时常犯的9个错误

特征工程:时间特征构造以及时间序列特征构造

用Python预测了一下世界杯决赛最后的赢家,发现准确率还挺高!!

分享、收藏、点赞、在看安排一下?

2bb326af87e55f28885d12f4d1a6cfa7.gif

95cdb7c5563a921e61064e50dc07b34a.gif

15fd90ec7fc4ebd58e71e4f2edb9ee43.gif

8644e89b70e3e46d3f54173394ea9b1e.gif

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值