前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python最新可视化库,pyvisflow说的一切可联动是什么

python最新可视化库,pyvisflow说的一切可联动是什么

作者头像
咋咋
发布2022-04-19 08:17:24
1.1K0
发布2022-04-19 08:17:24
举报
文章被收录于专栏:数据大宇宙

前言

上一节已经简单介绍了 pyvisflow 的特点,不过大家还是有不少疑问。

  1. 到底他有什么用?
  2. 在 python 我用 flask + html 更容易做出来?
  3. 我已经有一些使用 pyechart 或者其他的 python 图表库制作的图表,能用上吗?
  4. 到底 pyvisflow 有多灵活?

安装:

代码语言:javascript
复制
pip install pyvisflow

更新:

代码语言:javascript
复制
pip install pyvisflow --upgrade

这次我就简单解答一下

本节内容基于 pyvisflow 0.1.9版本


为什么我制作 pyvisflow

pyvisflow 不是给程序员制作网页服务使用的。

一开始,我看到 pywebio、streamlit 这些库,心想"python 总是可以方便制作分析报告了"。为此,我还写过几篇关于 pywebio 的文章。

不过在使用过程中发现,很多想法无法实现。简单来说,就是给到我的控制权不够。比如说

"我希望点击图表的某个部分,然后页面的表格能够筛选出相关的数据"

streamlit 并非做不到,只是需要你去编写前端控件

一直以来我是使用 excel 制作数据可视化报告,有时候也会使用 powerbi 做一些探索分析。但是他们各有优缺点。

  • excel 只能做到表格与图表的 单向联动 ,但是他分发很方便。直接一个文件发给别人,只要别人有安装 excel 就可以打开
  • powerbi 的联动非常好,但是分发也不方便。即使他可以做报表服务器,但是并不容易。他的图表联动也是比较死板。

既然没有合适的工具,那么我就做一个吧,这就是 pyvisflow。

开始的时候我是做 server版本,就是类似 dash、streamlit 这种带 web 服务,后来发现做成离线也挺有趣,所以才优先发布离线版本

那么,到底 pyvisflow 是用来做什么的?

如果你是一名需要制作数据分析可视化报告,那么 pyvisflow 就是一个很好的选择。 你完全可以把 pyvisflow 输出的结果看成是一个 excel 文件 ,发给别人就可以使用,不需要考虑别人电脑有没有安装 python。

而 pyvisflow 制作联动效果的能力,目前来看是有超越 power bi 的可能,更重要的是不需要你学习前端知识,就可以制作出各种联动效果

联动规则也是非常直观简洁,入门效果可以看这里

羡慕BI软件的可视化?python终于可以做出联动可视化报告

我相信任何人的电脑都有浏览器吧


pyvisflow 支持哪些图表库

pyvisflow 目前可以支持 echart、plotly 图表,并且他们之间都可以联动。如果你已经有一些使用 pyechart 或 py plotly 制作的图表,我也提供了相应的方法导入他们。

用了小小例子,假如我有一段 pyechart 的代码:

代码语言:javascript
复制
from pyecharts.charts import Bar
import pyvisflow as pvf

# pyecharts 官网示例
bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])

# pyvisflow
chart = pvf.echart()
chart.utils.use_from_option_dict(bar.get_options())

pvf.to_html('demo.html')
  • 行11:使用 .utils.use_from_option_dict 方法,传入调用图表对象的 get_options 获得的字典

就是这么简单!

不过,我是不推荐这么做,因为这样的图表不能使用 filter 过滤联动。

但其他的联动都可以使用,比如上一节演示过的标题:

代码语言:javascript
复制
from pyecharts.charts import Bar
import pyvisflow as pvf

# pyecharts 官网示例
...

# pyvisflow
chart = pvf.echart()
chart.utils.use_from_option_dict(bar.get_options())

# 输入框联动
input = pvf.input()
chart.title=input.value

pvf.to_html('demo.html')

你也可以获得鼠标交互信息:

代码语言:javascript
复制
from pyecharts.charts import Bar
import pyvisflow as pvf

# pyecharts 官网示例
...

# pyvisflow
chart = pvf.echart()
chart.utils.use_from_option_dict(bar.get_options())

# 
pvf.markdown('你点中了图表中的商品:{{good}}',good = chart.clickInfo['name'])

pvf.to_html('demo.html')

颜色也可以联动

"一切可联动" 是 pyvisflow 的宗旨 ,下面看一个例子:

代码语言:javascript
复制
import pyvisflow as pvf

# 容器 box
box = pvf.box()
# box 里面写一段文字
text = box.text('我是边框中的文字')

# 设置box的样式
box.styles.set_border().set_background('red')

pvf.to_html('demo.html')
  • 行9:通过 set_background 可以设置一个颜色值

既然这个颜色值可以设置,是不是也可以联动?

当然可以:

这是 pyvisflow 的基本操作,非常直观,不用多解释,直接看效果:

  • 由于颜色值可以是颜色名字,rgb(200,200,200,0.5) 或者 #e1372b 形式,所以我们可以直接在输入框里面输入这些有效值都可以让 box 颜色变化

上面使用的 rgb(200,200,200,0.5) 最后的0.5是透明度,那么可以不可以把透明度分出来让另一个组件来联动?

  • 行11-14:创建一个数字输入框,让他表示透明度
  • 行16:把文字输入框和数字输入框以及一些字符串拼接成有效的颜色值
  • 行19:绑定颜色值

看看效果:

你可以利用这一切做什么?一切全凭你的想象力。

下面看看一个小应用效果,当鼠标移到 box 上面的时候,里面的文字颜色变化,box的高度也变化:

代码语言:javascript
复制
import pyvisflow as pvf

# 容器 box
box = pvf.box()
# box 里面写一段文字
text = box.text('我是边框中的文字')

text_color = pvf.fns.ifelse(box.isHover,'red','blue')
text.styles.set('color',text_color)

box_height = pvf.fns.ifelse(box.isHover,'30vh','10vh')
box.styles.set_border().set_transition('1s').set_height(box_height)

pvf.to_html('demo.html')

虽然这些例子不是数据分析报告需要的功能,这只是 pyvisflow 基本功能,但足以让你拥有了控制权。

最后

必须说明的是,pyvisflow 只是刚起步,我还有许多惊喜的功能在研发中,欢迎大家试用并且反馈。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据大宇宙 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 为什么我制作 pyvisflow
  • pyvisflow 支持哪些图表库
  • 颜色也可以联动
  • 最后
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档