Datapane 007 - 报告 - 布局与自定义
2020-11-13 本文已影响0人
呆鸟的简书
虽然,数据分析是按一系列步骤执行的,但以一步步的形式展示分析结果却不是什么好方法 -- 对于习惯了仪表盘或 BI 工具的用户,这种从上到下的直筒式操作的用户体验就更差了。Datapane 可以实现更灵活的栅格式布局,无需 HTML 与 CSS 就可以创建自定义界面。
创建栅格
把 Plot
、Table
等组件传给报告时,这些组件默认以一列一行一个组件的形式布局。如需自定义行、列数量,要用 Datapane 的 Blocks
组件接收组件列表与行、列数量,实现栅格式布局。
这里沿用上文中的示例,但这次并列摆放可视图与数据集。调用 Blocks
,就可以指定列数。
# simple_report.py
import pandas as pd
import altair as alt
import datapane as dp
dataset = pd.read_csv('https://covid.ourworldindata.org/data/owid-covid-data.csv')
df = dataset.groupby(['continent', 'date'])['new_cases_smoothed_per_million'].mean().reset_index()
plot = alt.Chart(df).mark_area(opacity=0.4, stroke='black').encode(
x='date:T',
y=alt.Y('new_cases_smoothed_per_million:Q', stack=None),
color=alt.Color('continent:N', scale=alt.Scale(scheme='set1')),
tooltip='continent:N'
).interactive().properties(width='container')
dp.Report(
dp.Blocks(
dp.Plot(plot),
dp.Table(df),
columns=2
)
).publish(name='covid_report', open=True)
Blocks
是组件,可以再次组合,创建更加自定义的嵌套模块(block)。
自定义宽度
报告版式默认为纵向。大多数报告这么显示都没问题,但如果报告由多列模块组成,纵向显示就不理想了。Report
对象的 full_width
属性值设置为 True
时,可调整报告的宽度。这项功能可以创建下图所示的仪表盘式布局:
下一节,介绍 Datapane 团队版。