最近整理了一些比较优秀的Python数据可视化库(来自过去从各种推荐中收藏的内容以及在github中的搜索),比较全面,供朋友们参考。
数据绘图
- Lux:数据框自动可视化发现
自动化可视化数据框、辅助数据探索。在 Jupyter 中打印数据框,Lux会推荐一组可视化图表,以展示数据(交互式显示)。
链接:https://github.com/lux-org/lux
案例:https://notebooks.gesis.org/binder/jupyter/user/lux-org-lux-binder-23o8wej4/lab/tree/demo/hpi_covid_demo.ipynb
- cufflinks:plotly的进一步封装
将plotly的强大功能与pandas的灵活相结合,通过一个绘图命令(dataFrame.iplot)绘制几乎所有类型的交互式可视化图表。
链接:https://github.com/santosjorge/cufflinks
- Altair:简洁高效的统计可视化库
建立在 Vega-Lite基础上,低代码生成美观可视化效果的统计可视化库。
链接:https://github.com/altair-viz/altair
案例:https://nbviewer.org/gist/santosjorge/b278ce0ae2448f47c31d
- Pandas_Alive:低代码绘制动态图
快速为Pandas数据框创建动态图,例如很火的动态变化条形图。
链接:https://github.com/JackMcKew/pandas_alive
- pyecharts:基于百度ECharts的交互可视化库
链接:https://github.com/pyecharts/pyecharts
教程:https://gallery.pyecharts.org/#/README
- Plotly_express:交互式可视化库plotly的简化接口
链接:https://github.com/plotly/plotly_express
教程:https://plotly.com/python/plotly-express
- FuncAnimation:绘制动态图表,Matplotlib的扩展
import matplotlib.animation as ani 即可
- plotly:交互可视化
教程:https://plotly.com/python/getting-started/
- bokeh:交互式可视化库,支持现代化 Web 浏览器
教程:http://docs.bokeh.org/en/latest/
- Lightning
交互式数据可视化框架,提供在线版本、服务器版本(软件)支持命令行操作、python版本(有一定局限性)、R版本(社区用户构建)等。
链接:https://github.com/lightning-viz/lightning-example-notebooks
- HoloViews
低代码绘图库,旨在使数据分析和可视化无缝且简单。
链接:https://github.com/holoviz/holoviews
- sweetviz
两行代码深入EDA
链接:https://github.com/fbdesignpro/sweetviz
- plotnine:
使用方式与R语言很相似,做出来的图也很好看
链接:https://github.com/has2k1/plotnine-examples
- Pygal
python可视化库,基于XML(Extensible Markup Language),可以生成多个输出格式的高分辨率Web图形页面。
链接:http://www.pygal.org/en/stable/
- scikit-plot
机器学习绘图库
链接:https://github.com/reiinakano/scikit-plot
- Highcharts: pip install python-highcharts
似乎很多年没更新了,不推荐。
链接:https://github.com/kyper-data/python-highcharts
- pandas自带 df.plot 快速绘图,可以一行代码快速可视化表格数据
链接:https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.DataFrame.plot.bar.html
- bqplot
为Jupyter Notebook开发的交互插件,丰富了交互图层,可满足丰富的交互式可视化需求。
链接:https://github.com/bqplot/bqplot
- PyG2Plot
基于蚂蚁金服开源图形语法G2的交互式和响应式图表库。可以通过几行代码轻松制作优质的统计图表。
链接:https://github.com/hustcc/PyG2Plot
- PyCatFlow:类别特征可视化工具
对类别特征随着时间变化进行绘制,基于分类数据表示时间发展。
- Chartify
Bokeh包装,使数据科学家更容易创建图表。
链接:https://github.com/spotify/chartify
- Glumpy:高效美观的科学可视化( Python+Numpy+OpenGL )
链接:https://glumpy.readthedocs.io/en/latest/
- Pyvista:三维可视化、绘制3维图形
链接:https://docs.pyvista.org/
- VisPy
交互式 2D/3D 的数据可视化库。利用图形处理器 GPU 通过 OpenGL 库来显示非常大的数据。
链接:https://vispy.org/
- python-ternary
一个绘图库,与matplotlib一起使用,可以在二维单纯形中绘制三元绘图,并将其投影到二维平面上。
链接:https://github.com/marcharper/python-ternary
- matplotx
Matplotlib的优质扩展,可辅助Matplotlib轻松实现理想图形。
链接:https://github.com/nschloe/matplotx
- mpld3
Python的Matplotlib可视化库与JavaScript的D3.js强交互可视化库结合,弥补Matplotlib的弱交互能力,可将Matplotlib图像导出为HTML代码,进而运用于浏览器网页、博客等中。
链接:https://mpld3.github.io/
- pandasgui:数据框可视化GUI
图形化界面进行数据框可视化
链接:https://github.com/adamerose/PandasGUI
- ipyvizzu : 动态图表制作
链接:https://github.com/vizzuhq/ipyvizzu/tree/main
教程:https://vizzuhq.github.io/ipyvizzu/examples/examples.html
绘图风格库
- mplcyberpunk:为matplotlib绘图添加赛博朋克风格
两个主要功能:make_lines_glow(线条发光)、add_underglow(线条面积图)
链接:https://github.com/dhaitz/mplcyberpunk
- SciencePlots:Matplotlib补充包
一键调用符合IEEE等不同期刊要求的图表格式。
链接:https://github.com/garrettj403/SciencePlots
- 设置主题
import seaborn as sns
sns.set_palette(“magma”, 8)
- haishoku
提取图片中的配色,获得可轻松使用的结果
链接:https://github.com/LanceGin/haishoku
Web交互式可视化展示
(这里记录的是可以用于快速搭建可视化Web服务的库,即用于快速制作简易可视化网站的库)
- Gleam
Gleam 用 Python 构建数据的交互式 Web 可视化:无需 HTML 、JS (灵感来自R 中的Shiny包)
链接:https://github.com/dgrtwo/gleam
- Dash
编写在 Plotly.js 和 React.js 基础上,适合构建和部署具有自定义用户界面的数据应用程序,是构建数据可视化app的理想选择。
链接:https://dash.plotly.com/introduction
- Streamlit
用于创建交互式,美观的可视化应用程序(例如机器学习app)
链接:https://github.com/streamlit/streamlit
- Gradio
比Streamlit轻量的UI设计库,快速搭建机器学习app。
链接:https://gradio.app/
实现特定功能的可视化库
- ann-visualizer
一键导出keras神经网络结构可视化图
https://github.com/RedaOps/ann-visualizer
- 3b1b:制作动态3d数学(主要)
https://github.com/3b1b/manim
- dash-bio:基于dash构建的的生物信息学可视化库
项目地址:https://github.com/plotly/dash-bio
- hiplot
高维数据(例如例如深度学习的调参结果)可视化库
https://github.com/facebookresearch/hiplot
- Diagrams:绘制云系统架构
https://diagrams.mingrammer.com
- missingno
快速高效可视化评估数据缺失的情况。
https://github.com/ResidentMario/missingno
- VisualDL
深度学习(指标等)可视化分析。
https://github.com/PaddlePaddle/VisualDL
- Model Log
基于 Python的深度学习模型训练评估指标可视化工具,与 TensorFlow、Pytorch、PaddlePaddle结合使用,可以记录模型训练过程当中的超参数、Loss、Accuracy、Precision、F1值等,并以曲线图的形式进行展现对比,轻松三步即可实现。
https://github.com/NLP-LOVE/Model_Log
- import pandas_profiling ;pandas_profiling.ProfileReport(df)
一键数据分析(数据概况、缺失、相关性、异常值等等),方便结合数据分析报告做特征生成。
- Aim:https://github.com/Aimhubio/Aim
号称搜索速度比TensorBoard快几倍的机器学习可视化工具包(加州伯克利)
- nn_vis:https://github.com/julrog/nn_vis
神经网络3D可视化
(其他神经网络可视化库:NNSVG、Conx、ENNUI、Neataptic)
- Autoviz
一行代码搞定数据集探索并可视化
https://github.com/AutoViML/AutoViz
- yellowbrick
Scikit-Learn的强力扩展,几行代码可视化「特征值」、「模型」、「模型评估」等,帮助“调参侠”们「更便捷的的选择机器学习模型和调参」,依赖Matplotlib和Scikit-Learn。
https://github.com/DistrictDataLabs/yellowbrick
- napari
图像查看和分析软件
https://napari.org/
- itkwidgets
Jupyter的一个交互式小部件,主要运用于可视化图像、点集和mesh。 https://github.com/InsightSoftwareConsortium/itkwidgets
- vedo
三维可视化
https://github.com/marcomusy/vedo
- ipyvolume
三维可视化
可在Jupyter Notebook中渲染3D图,基于WebGL,功能较少。
- mayavi
三维可视化
http://docs.enthought.com/mayavi/mayavi/index.html
案例代码
- matplotlib案例代码 https://github.com/liuhuanshuo/zaoqi-data
- 用Python制作的数百个图表的集合,带有相关的可复制代码。https://www.python-graph-gallery.com