Deckgl 图表#
填充地图图表#
- deckgl.choropleth(color_column, elevation_column=None, color_aggregate_fn='count', color_factor=1, elevation_aggregate_fn='sum', elevation_factor=1, add_interaction=True, geoJSONSource=None, geoJSONProperty=None, geo_color_palette=None, mapbox_api_key=None, map_style=None, tooltip=True, tooltip_include_cols=[], nan_color='#d3d3d3', title='', x_range=None, y_range=None, opacity=None, layer_spec={})#
- 参数:
- x: str
来自 gpu dataframe 的 x 轴列名
- color_column: str
来自 gpu dataframe 的列名,颜色调色板基于此列
- elevation_column: str | Optional
来自 gpu dataframe 的列名,高程比例基于此列
- color_aggregate_fn: {‘count’, ‘mean’, ‘sum’, ‘min’, ‘max’, ‘std’},
- 默认值 “count”
应用于颜色列的聚合函数,同时按 列 x 进行 groupby 聚合
- color_factor: float, default 1
在映射颜色之前,要乘以颜色列的每个值的因子
- elevation_aggregate_fn: {‘count’, ‘mean’, ‘sum’, ‘min’, ‘max’, ‘std’},
- 默认值 “count”
应用于高程列的聚合函数,同时按 列 x 进行 groupby 聚合
- elevation_factor: float, default 1
在缩放高程之前,要乘以高程列的每个值的因子
- add_interaction: {True, False}, default True
- geoJSONSource: str
geoJSON 文件的 URL
- geoJSONProperty: str, optional
进行聚合操作时要使用的属性(使用 geoJSON 文件)。默认为 geoJSON 文件中 properties 的第一个值。
- geo_color_palette: bokeh.palette, default bokeh.palettes.Inferno256
- mapbox_api_key: str, default os.getenv(‘MAPBOX_API_KEY’)
- map_style: str,
- 默认值基于 cuxfilter.themes
dark/rapids_dark 主题: ‘mapbox://styles/mapbox/dark-v9’ default/rapids 主题: ‘mapbox://styles/mapbox/light-v9’
Mapbox 底图样式的 URI。参见 Mapbox 的 https://docs.mapbox.com/mapbox-gl-js/example/setstyle/ 了解示例
- tooltip: {True, False}, default True
- tooltip_include_cols: [], default list(dataframe.columns)
- nan_color: hex color code, default cuxfilter.charts.CUXF_NAN_COLOR
地图中值为 NaN 的区域的颜色。
- title: str,
图表标题
- x_range: tuple, default None (自动计算)
用于 x 轴的最小值和最大值的元组
- y_range: tuple, default None (自动计算)
用于 y 轴的最小值和最大值的元组
- opacity: float, default None
图表的不透明度
- layer_spec: dict, default {}
用于覆盖默认图层规范的 deck.gl 图层规范字典。更多信息请参阅 https://deck.gl/docs/api-reference/layers/polygon-layer
- 返回值:
- 一个 Bokeh 图表对象,类型为填充地图(2D 或 3D,取决于
elevation_column 的值)
3D 填充地图示例#
import numpy as np
import cudf
import cuxfilter
geoJSONSource='https://raw.githubusercontent.com/rapidsai/cuxfilter/GTC-2018-mortgage-visualization/javascript/demos/GTC%20demo/src/data/zip3-ms-rhs-lessprops.json'
size = 1000
cux_df = cuxfilter.DataFrame.from_dataframe(
cudf.DataFrame({
'color':np.random.randint(20,30, size=size*10)/100,
'zip': list(np.arange(1,1001))*10,
'elevation': np.random.randint(0,1000, size=size*10)
})
)
chart0 = cuxfilter.charts.choropleth( x='zip', color_column='color', color_aggregate_fn='mean',
elevation_column='elevation', elevation_factor=1000, elevation_aggregate_fn='mean',
geoJSONSource=geoJSONSource, add_interaction=True
)
#declare dashboard
d = cux_df.dashboard([chart0],theme = cuxfilter.themes.dark, title='Mortgage Dashboard')
# use chart0.view() in a notebook cell to view the individual charts
chart0.view()
2D 填充地图示例#
import numpy as np
import cudf
import cuxfilter
geoJSONSource='https://raw.githubusercontent.com/rapidsai/cuxfilter/GTC-2018-mortgage-visualization/javascript/demos/GTC%20demo/src/data/zip3-ms-rhs-lessprops.json'
size = 1000
cux_df = cuxfilter.DataFrame.from_dataframe(
cudf.DataFrame({
'color':np.random.randint(20,30, size=size*10)/100,
'zip': list(np.arange(1,1001))*10,
'elevation': np.random.randint(0,1000, size=size*10)
})
)
chart0 = cuxfilter.charts.choropleth( x='zip', color_column='color', color_aggregate_fn='mean',
geoJSONSource=geoJSONSource, add_interaction=True
)
#declare dashboard
d = cux_df.dashboard([chart0],theme = cuxfilter.themes.dark, title='Mortgage Dashboard')
# use chart0.view() in a notebook cell to view the individual charts
chart0.view()