【小沐学Python】Python实现Web图表功能(Lux)

66 篇文章 13 订阅
本文介绍了Lux,一个Python库,通过自动化可视化和数据分析帮助用户快速探索大规模数据。它能识别数据特征并生成有意义的图表,支持交互式探索和Pandas无缝集成。文章详细展示了如何安装、使用和测试Lux进行入门示例,以及将其集成到JupyterNotebook和Streamlit应用中。
摘要由CSDN通过智能技术生成

1、简介

https://github.com/lux-org/lux

用于智能可视化发现的 Python API

在这里插入图片描述
Lux 是一个 Python 库,通过自动化可视化和数据分析过程来促进快速简便的数据探索。通过简单地在 Jupyter 笔记本中打印出数据帧,Lux 推荐一组可视化效果,突出显示数据集中有趣的趋势和模式。可视化通过交互式小部件显示,使用户能够快速浏览大量可视化并理解其数据。

  • 自动可视化:Lux能够自动识别数据框中的关键特征,并生成有意义的可视化图表。
  • 交互性:Lux提供了交互式探索数据的能力,可以轻松地通过滑块、筛选器和图表操作进行数据的探索和分析。
  • 简单易用:Lux的API简单易用,无需繁琐的配置即可创建高质量的可视化图表。
  • 快速探索:Lux可以快速探索大规模数据集,发现潜在的模式和见解。

2、安装

https://lux-api.readthedocs.io/
Python Lux是一个Python库,它与Pandas数据框(DataFrames)无缝集成,提供了简单而强大的数据可视化功能。

pip install lux-api==0.5.1
pip install lux-widget==0.1.11

在这里插入图片描述
Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。

pip install jupyter
pip install notebook==6.5.6
pip install traitlets==5.14.2

在这里插入图片描述

pip install -r requirements.txt

在这里插入图片描述

jupyter nbextension install --py luxwidget
jupyter nbextension enable --py luxwidget

在这里插入图片描述

3、测试

3.1 入门示例

执行命令之后,在终端中将会显示一系列notebook的服务器信息,同时浏览器将会自动启动Jupyter Notebook。启动jupyter :

jupyter notebook

在这里插入图片描述
浏览器自动打开如下网页:
在这里插入图片描述
Lux 可以在不修改任何现有 Pandas 代码的情况下使用。在这里,我们使用 Pandas 的 read_csv 命令加载大学及其属性的数据集。

输入Python代码如下:

import lux
import pandas as pd
# df = pd.read_csv("https://raw.githubusercontent.com/lux-org/lux-datasets/master/data/college.csv")
df = pd.read_csv("college.csv")
df

在这里插入图片描述
运行如下:
在这里插入图片描述
点击按钮“Toggle Pandas/Lux”,如下:

  • Correlation
    在这里插入图片描述
  • Distribution
    在这里插入图片描述
  • Occurrence
    在这里插入图片描述
df.intent = ["AverageCost","SATAverage"]
df

在这里插入图片描述

from lux.vis.Vis import Vis
Vis(["Region=New England","MedianEarnings"],df)

在这里插入图片描述

from lux.vis.VisList import VisList
VisList(["Region=?","AverageCost"],df)

在这里插入图片描述

3.2 入门示例2

例如,我们加载了快乐星球指数数据集,其中包含与全球 140 个国家/地区的幸福感相关的指标。

import pandas as pd
import lux

# df = pd.read_csv("https://raw.githubusercontent.com/lux-org/lux-datasets/master/data/hpi.csv")
df = pd.read_csv("hpi.csv")
df.default_display = "lux" # Set Lux as default display
df

在这里插入图片描述
点击切换按钮“Toggle Pandas/Lux”之后:
在这里插入图片描述
点击分页“Geographical”,如下:
在这里插入图片描述

vis = df.exported[0]
vis

在这里插入图片描述
通过导出的 Vis,我们可以将与 dataframe 关联的 intent 更新为基于所选 Vis 的 Vis,以获得与此可视化相关的更多建议。

df.intent = vis
df

在这里插入图片描述
为了允许对可视化进行进一步的编辑,可以通过以下命令将可视化导出为 Matplotlib、Altair 中的代码或作为 Vega-Lite 规范。

print (vis.to_code("matplotlib"))
print (vis.to_code("altair"))
print (vis.to_code("vegalite"))

在这里插入图片描述

print (vis.to_matplotlib())

在这里插入图片描述
您可以使用以下命令将可视化效果导出为静态 HTML:

df.save_as_html()

在这里插入图片描述
导出到 Streamlit。先安装streamlit,如下:

pip install streamlit 

在这里插入图片描述
安装完成后,您可以通过运行streamlit version来检查Streamlit的版本信息。

streamlit version

在这里插入图片描述
Streamlit 是一个 Python 库,它简化了创建可在任何地方共享和部署的交互式数据应用程序的过程。 要将 Lux 与 Streamlit 集成,您可以使用 Streamlit 组件包装 HTML 小部件输出。

新建app.py:

import streamlit as st
import streamlit.components.v1 as components
from pathlib import Path
import pandas as pd
import lux

def app():
    st.title('爱看书的小沐!2024!')
    st.write('Check out these cool visualizations!')
    # df = pd.read_csv("https://raw.githubusercontent.com/lux-org/lux-datasets/master/data/hpi.csv")
    df = pd.read_csv("hpi.csv")
    export_file = 'visualizations.html'
    html_content = df.save_as_html(output=True)
    components.html(html_content, width=800, height=350)

app()

执行命令行命令:

streamlit run app.py localhost:8501

在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web Chart Flot - Flot 为 jQuery 提供的javascript代码库. 容易使用,有特色的图表,提供交互功能(能够放大缩小数据区域等)。 Open Flash Chart - Open Flash Chart 是一个 Flash 图表组件,很容易安装,提供以下语言的API: PHP, Perl, Python, Java, Ruby on Rails, and .Net 来控制图表。 ? AmCharts - AmCharts 是一个动画交互Flash图表。支持: Pie Charts, Line Charts, Scatter/Bubble Charts, Bar/Column Charts, 甚至股票图表。 ? Emprise JavaScript Charts - Emprise 是一个100% 纯 JavaScript 图表解决方案,并不需要任何 JavaScript 框架. ? PlotKit - PlotKit 是一个 图表和图像的Javascript 库. PlotKit 和 MochiKit javascript 库一起工作,支持HTML Canvas 和 Adobe SVG 显示 以及本地浏览器支持。尤其文档非常全。 ? Flotr - Flotr 是Prototype 1.6.0.2框架的javascript插件库。 Flotr帮助你在浏览器中创建图表,支持鼠标事件响应,放大缩小,CSS类型支持等。 PHP/SWF Charts - PHP/SWF 是一个简单支持web图表的强大工具,你能使用 PHP 来收集数据,并发送给flash,支持很多图表类型: Line, Column, Stacked column, Floating column, 3D column, Stacked 3D column, Parallel 3D column, Pie, 3D Pie, Bar, Stacked bar, Floating bar, Area, Stacked area, Candlestick, Scatter, Polar, Mixed. ? Visifire - Visifire 是用 Silverlight 做的,是一个开源可视化数据组件,使用Visifire你能创建动画 Silverlight 图表,支持 ASP, ASP.Net, PHP, JSP, ColdFusion, Ruby on Rails 或者 简单 HTML调用. ? FusionCharts - FusionCharts 是一个跨浏览器和跨平台的flash图表组件,能够被 ASP.NET, ASP, PHP, JSP, ColdFusion, Ruby on Rails, 简单 HTML 页面 甚至PPT调用. 几乎所有你知道的语言它都支持。 ? JFreeChart - JFreeChart 是一个开源java图表库,让开发者能够很容易在程序里面显示高质量的图表。 JFreeChart 项目从7年前便开始了,起始于 2000 年1月, 已经有四五万开发者已经使用了JFreeChart。JFreeChart 支持很多种图形文件格式: JPEG, GIF, PDF, EPS and SVG. 这对于java开发者是一个很好的资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值