布局#
cuxfilter 提供了预设和自定义布局选项。请参见下面的示例了解如何使用这两种选项。
下载数据集#
[1]:
from cuxfilter.sampledata import datasets_check
[ ]:
DATA_DIR = './data'
! curl https://data.rapids.ai/viz-data/146M_predictions_v2.arrow.gz --create-dirs -o $DATA_DIR/146M_predictions_v2.arrow.gz
datasets_check('mortgage', base_dir=DATA_DIR)
导入并设置图表#
[ ]:
from cuxfilter import charts
import cuxfilter
from bokeh import palettes
import panel as pn
cux_df = cuxfilter.DataFrame.from_arrow('./data/146M_predictions_v2.arrow')
chart0 = charts.choropleth(x='zip', color_column='delinquency_12_prediction', color_aggregate_fn='mean',
geo_color_palette=palettes.Purples9,
geoJSONSource = 'https://raw.githubusercontent.com/rapidsai/cuxfilter/GTC-2018-mortgage-visualization/javascript/demos/GTC%20demo/public/data/zip3-ms-rhs-lessprops.json',
nan_color='white')
chart1 = charts.bar('dti')
chart2 = charts.bar('delinquency_12_prediction',data_points=50)
chart3 = charts.bar('borrower_credit_score', step_size=1)
chart4 = charts.bar('seller_name')
chart5 = charts.scatter(x='loan_id',y='current_actual_upb')
chart6 = charts.scatter('zip', 'dti')
chart7 = charts.heatmap('dti','borrower_credit_score', aggregate_col='delinquency_12_prediction', aggregate_fn="mean")
chart8 = charts.line('loan_id','borrower_credit_score')
#create a list of charts
charts_list = [chart0, chart3, chart1, chart2, chart4, chart5, chart6, chart7, chart8]
widgets = [charts.multi_select('dti'), charts.card(pn.pane.Markdown("""
## Sample Palette Legend
-  `#A932FF`: Purple 1
-  `#8E44AD`: Purple 2
-  `#6C3483`: Purple 3
-  `#512E5F`: Purple 4
-  `#341C4E`: Purple 5
""")) ]
用户自定义布局#
Layout_array#
自定义布局通过传递给 .dashboard()
API 的输入参数 layout_array
来应用。
布局数组是一个列表的列表,表示一个二维布局页面。每个列表对应布局中的一整行。一个列表包含图表编号(从 1 到 n),表示它们在页面上的确切位置。输入的数组会自动缩放以适应整个屏幕。
示例 1:#
layout_array = [[1]]
将导致单个图表占据整个页面。
示例 2:#
layout_array = [[1], [1], [2]]
将导致图表 1 占据前两行,图表 2 占据最后一行,大致将两图表布局按 66%-33% 的比例划分。
示例 3:#
[ ]:
d = cux_df.dashboard(charts_list, sidebar=widgets, layout_array=[
[1, 1, 2, 2],
[1, 1, 3, 4]
], theme=cuxfilter.themes.rapids_dark, title="Layout - Custom")
预设布局#
预设布局通过传递给 .dashboard()
API 的输入参数 layout
来应用。
单特征
[ ]:
d = cux_df.dashboard(charts_list, sidebar=widgets, layout=cuxfilter.layouts.single_feature, theme=cuxfilter.themes.rapids_dark, title="Layout - single feature")
特征和基础
[ ]:
d = cux_df.dashboard(charts_list, sidebar=widgets, layout=cuxfilter.layouts.feature_and_base, theme=cuxfilter.themes.rapids_dark, title="Layout - feature and base")
双特征
[ ]:
d = cux_df.dashboard([chart0, chart1], sidebar=widgets, layout=cuxfilter.layouts.double_feature, theme=cuxfilter.themes.rapids_dark, title="Layout - double feature")
左特征右双列
[ ]:
d = cux_df.dashboard(charts_list[:4], sidebar=widgets, layout=cuxfilter.layouts.left_feature_right_double, theme=cuxfilter.themes.rapids_dark, title="Layout - left feature right double")
三特征
[ ]:
d = cux_df.dashboard([chart1, chart2, chart3], sidebar=widgets, layout=cuxfilter.layouts.triple_feature, theme=cuxfilter.themes.rapids_dark, title="Layout - triple feature")
特征和双基础
[ ]:
d = cux_df.dashboard([chart0, chart2, chart3], sidebar=widgets, layout=cuxfilter.layouts.feature_and_double_base, theme=cuxfilter.themes.rapids_dark, title="Layout - feature and double base")
两行两列
[ ]:
d = cux_df.dashboard([chart0, chart2, chart3, chart4], sidebar=widgets, layout=cuxfilter.layouts.two_by_two, theme=cuxfilter.themes.rapids_dark, title="Layout - two by two")
特征和三基础
[ ]:
d = cux_df.dashboard(charts_list, sidebar=widgets, layout=cuxfilter.layouts.feature_and_triple_base, theme=cuxfilter.themes.rapids_dark, title="Layout - feature and triple base")
特征和四基础
[ ]:
d = cux_df.dashboard(charts_list, sidebar=widgets, layout=cuxfilter.layouts.feature_and_quad_base, theme=cuxfilter.themes.rapids_dark, title="Layout - feature and quad base")
特征和五边缘
[ ]:
d = cux_df.dashboard(charts_list, sidebar=widgets, layout=cuxfilter.layouts.feature_and_five_edge, theme=cuxfilter.themes.rapids_dark, title="Layout - feature and five edge")
两行三列
[ ]:
d = cux_df.dashboard([chart3, chart1, chart2, chart4, chart5, chart6], sidebar=widgets, layout=cuxfilter.layouts.two_by_three, theme=cuxfilter.themes.rapids_dark, title="Layout - two by three")
双特征四基础
[ ]:
d = cux_df.dashboard(charts_list, sidebar=widgets, layout=cuxfilter.layouts.double_feature_quad_base,
theme=cuxfilter.themes.rapids_dark, title="Layout - double feature quad base")
三行三列
[ ]:
d = cux_df.dashboard(charts_list, sidebar=widgets, layout=cuxfilter.layouts.three_by_three,
theme=cuxfilter.themes.rapids_dark, title="Layout - three by three")
[ ]: