数据可视化和报告构建
项目描述
PyBloqs是一个灵活的框架,用于数据可视化和报告的自动创建。
在ipython笔记本中使用pybloqs
它与Pandas、matplotlib和highcharts一起工作。PyBloqs创建包含文本、表格(来自Pandas DataFrame)、图表(matplotlib或highcharts)或图像的原子块。所有块都可以使用CSS进行样式设置。每个块都可以单独创建和显示,以实现快速开发周转。可以将块列表堆叠在一起形成报告。报告可以以HTML格式在浏览器中显示或以多种格式(包括HTML、PDF、SVG、PNG)导出。
快速入门
安装PyBloqs
要执行不包含HighCharts支持的最低安装,请运行
pip install pybloqs
或者当以开发模式安装时
python setup.py develop
这将允许您运行下面的示例代码。
外部依赖
为了实现全部功能,PyBloqs需要以下第三方程序和库。对于某些库,在安装时必须指定文件位置
pip install --install-option="INSTALL OPTIONS" git+https://github.com/manahl/pybloqs.git
例如:
pip install --install-option="--highcharts=~/node_modules/highcharts/,~/node_modules/highcharts-heatmap/" git+https://github.com/manahl/pybloqs.git
PyBloqs捆绑的库
jsinflate.js (https://github.com/augustl/js-inflate; MIT许可证)
jquery.js (https://jqueryjs.cn; MIT许可证)
jquery-DataTables.js (https://datatables.net.cn; MIT许可证)
wkhtmltopdf/wkhtmltoimage (http://wkhtmltopdf.org/; LGPLv3)
wkhtmltopdf未包含在PyBloqs中。您需要从您的发行版的仓库(Linux)中安装它,或者从项目页面(https://wkhtmltopdf.org)下载。wkhtmltopdf和wkhtmltoimage二进制文件用于除HTML之外的其他文件输出。PyBloqs将在系统路径上搜索这些二进制文件。如果您想使用本地二进制文件的副本,请使用以下选项进行安装
--wkhtmltopdf=/path/to/binary
在开发模式下安装时,您可以显式加载wkhtmltopdf
python setup.py load_wkhtmltopdf --wkhtmltopdf=/path/to/binary
Node.js和comander以及puppeteer(可选;用于具有'chrome_headless'后端的PDF输出)。请确保它们是全局可用的。在开发模式下,您可以在主PyBloqs目录中运行
npm install
Bokeh(可选)。要安装Bokeh依赖项,您可以使用
pip install pybloqs[bokeh]
Plotly(可选)。要安装Plotly依赖项,您可以使用
pip install pybloqs[plotly]
HighCharts(可选;专有许可证,请参阅https://shop.highsoft.com/highcharts-t2)
HighCharts未包含在PyBloqs中。要创建具有Highcharts图表的块,您需要单独下载HighCharts(例如,使用npm install highcharts,npm install highcharts-heatmap等),并提供您的highcharts安装路径。请确保您拥有HighCharts的正确许可证。为了实现完整功能,您将需要以下highcharts包:highcharts,highcharts-heatmap,highcharts-funnel,highcharts-exporting,highcharts-export-csv(此示例假定,npm安装文件到目录 ~/node_modules)。
--highcharts=~/node_modules/highcharts/, ~/node_modules/highcharts-heatmap/,~/node_modules/highcharts-funnel,~/node_modules/highcharts-exporting, ~/node_modules/highcharts-export-csv
在开发模式下安装时,您可以显式加载highcharts(此示例假定,npm安装文件到目录 ~/node_modules)
python setup.py load_highcharts --highcharts=~/node_modules/highcharts/,~/node_modules/highcharts-heatmap/,\ ~/node_modules/highcharts-funnel,~/node_modules/highcharts-exporting,~/node_modules/highcharts-export-csv
使用PyBloqs
from pybloqs import Block, HStack, VStack import pandas as pd from matplotlib import pyplot as plt text_block = Block('This is a text block', styles={'text-align':'center', 'color':'blue'}) text_block.show() df = pd.DataFrame([[1., 2.],[3.,4.]], columns =['a', 'b']) table_block = Block(df) table_block.show() plot_block = Block(plt.plot(df['a'], df['b'])) plot_block.show() plot_and_table = HStack([plot_block, table_block]) report = VStack([text_block, plot_and_table]) report.show() report.save('report.pdf')
配置
您可以在以yaml格式编写的文件 ~/.pybloqs.cfg 中指定每个用户的默认参数。此配置文件允许您设置针对smtplib.SMTP(https://docs.pythonlang.cn/2/library/smtplib.html#smtplib.SMTP)对象的调用设置和登录序列。以下适用于Google Gmail - 更多详细信息请参阅此处(https://support.google.com/a/answer/176600?hl=en)
smtp_kwargs: host: smtp.gmail.com port: 587 smtp_pre_login_calls: - !!python/tuple - ehlo - {} - !!python/tuple - starttls - {} - !!python/tuple - ehlo - {} smtp_login: user: me@gmail.com password: a_secret public_dir: /tmp tmp_html_dir: /tmp user_email_address: me@gmail.com
文档
请参阅详细文档。
要求
PyBloqs与以下内容兼容
matplotlib
Pandas
html5lib
lxml
jinja2
markdown
beautifulsoup4
docutils
鸣谢
PyBloqs自2013年以来一直在Man AHL积极开发。
原始概念和实现: Tom Farnbauer
贡献者
…以及许多人…
欢迎贡献!
许可证
PyBloqs根据GNU LGPL v2.1授权。许可证副本包含在LICENSE
变更日志
1.0.0 (2017-04-07)
首次公开发布
1.0.1 (2017-04-13)
与pypi和ReadTheDocs集成。
在Mac和Windows上安装。
1.0.2 (2017-04-26)
元数据和Python版本徽章。
Python 3兼容性更改,第1部分。
使用Coveralls安装。
1.0.3 (2017-04-26)
错误修复:修正了urlparse的导入,修复了Block.show()。
1.1.0 (2017-05-10)
jQuery DataTables支持。
HTML锚点。
错误修复:HTML-body的宽度不再硬编码。
1.1.1 (2017-05-10)
错误修复:包括DataTables CSS的静态数据。
1.1.2 (2017-06-2)
错误修复:Matplotlib图象的大小不再截断为整数。
在CI设置中更新了wkhtmltopdf的下载路径。
1.1.3 (2017-06-6)
错误修复:show()中用户主目录的展开。
修复错误:允许更新对Block()的默认类型处理的灵活定义。
1.1.4 (2017-06-22)
修复错误:在应用行或列上的操作符(例如在总计行中),将NaN替换为零。
1.1.5 (2017-08-22)
修复错误:多索引格式化器现在可以处理具有非唯一多索引的DataFrame。
修复错误:ReadTheDocs自动文档构建已修复。
1.1.6 (2017-08-23)
修复错误:在HTML输出中设置Unicode元标签,并使Unicode字符串与Raw()块一起工作。
1.1.7 (2018-02-23)
新增功能:更多SMTP选项。
新增功能:UTF-8电子邮件MIME类型。
新增功能:允许电子邮件的BCC。
1.1.8 (2018-03-26)
修复错误:FmtHighlightText - 明确设置列标题非粗体。
新增功能:将分页示例添加到文档中。
修复错误:在所有格式化器上将apply_to_header_and_index传递给基类。
1.1.9 (2018-09-19)
修复错误:在具有非唯一索引的table.html中的索引错误。
修复错误:在测试中删除Pandas警告。
删除WidePanel,更新ipynb。
新增功能:为多索引级别添加指定不同文本颜色的支持。
新增功能:添加一个上下文管理器以临时设置绘图格式/DPI。
1.2.0 (2018-11-21)
新增功能:支持Python 3。
新增功能:支持Bokeh绘图。
新增功能:支持Plotly绘图。
新增功能:允许使用不同的HTML转换后端。
新增功能:添加Chrome-headless后端以进行HTML->PDF转换。
已更新CircleCI配置到版本2。
1.2.1 (2018-11-23)
修复错误:从顶层init.py中删除pybloqs.plot导入。
修复错误:puppeteer.js现在包含在egg/wheel打包中。
1.2.2 (2018-11-27)
修复错误:为wkhtmltox失败日志添加缺少的格式化器参数。
1.2.3 (2018-12-03)
修复错误:确保python2字符串被正确编码。
1.2.4 (2019-03-27)
修复错误:维护静态导入顺序。
1.2.5 (2019-06-25)
修复错误:总计行格式化器不再为非数字列插入NaN。
1.2.6 (2019-07-17)
新增功能:将kwargs传递给plotly绘图函数。
1.2.7 (2019-08-06)
修复错误:在Jupyter中使用require.js为Plotly和Highcharts。
将id_precision移动到用户配置。
在所有地方使用tmp_html_dir。
1.2.8 (2020-08-25)
修复错误:使用colgroup标签指定FmtHeader宽度。
修复错误:如果父单元格未合并,则不合并多索引单元格。
修复错误:将实际标题单元格内容传递给格式化器方法。
新增功能:添加垂直合并多索引标签的能力。
1.2.9 (2020-12-02)
修复错误:当索引为多索引时修复标题位置。
修复错误:修复多索引样式。
新增功能:添加垂直对齐格式化器。
1.2.10 (2020-12-03)
修复错误:从Jinja表格模板中仅传递单行名称到格式化器。
1.2.11 (2020-12-03)
修复错误:停止渲染多索引展平列。
1.2.12 (2022-01-18)
新增功能:将CommonTableFormatter构建器添加到配置表格格式。
修复错误:修复表格格式的条纹背景。
弃用Python 2.7,将Python 3.6设置为最低要求版本。
1.2.13 (2022-01-25)
修复错误:修复Plotly块输出在Jupyter的新版本中不再显示的问题。
修复错误:将静态输出添加到Bokeh和Plotly以启用在电子邮件正文中发送。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定要选择哪一个,请了解更多关于安装包的信息。
源分布
构建版本
pybloqs-1.2.13.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | df675c395eeb6648a6f24590d80bfa8206293a2b0e737a80830eea4f6672820b |
|
MD5 | d12749b01c9194a4f034d0b0c165acb1 |
|
BLAKE2b-256 | ca5f37544dcde44db8a2cd8b16a889c1a43e6da4057a5f1e0f58bef5f9329a6e |
pybloqs-1.2.13-py3.6.egg的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 96cbf1d33ac55c2f375e0a021074276dcc56ed24616a045f9ff2613c1c4f717f |
|
MD5 | 625585d61cfe0d6400cbbef5e75499c9 |
|
BLAKE2b-256 | 59acb03b13a58c0b27c9ed4fd6b1341b1c8432a1d061b8e8302081c8f6d68b4d |
pybloqs-1.2.13-py2.py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7309da3c257c4b861a9c0bf616dbd7e4b94c6e7e193c3cd9c1f257e467c8543a |
|
MD5 | 803873be584aa8ed4243214710f0c91f |
|
BLAKE2b-256 | f5c7c5db059cd4f23f54ab8389ac6c403501af4d8c2b46ec8d85f35789ff7125 |