pyecharts 3D 圖表

2023-02-17 11:10 更新
Grid3Dopts,Axis3DOpts 為 3D 圖形需要配置項(xiàng)

Grid3DOpts:三維笛卡爾坐標(biāo)系配置項(xiàng)

class pyecharts.options.Grid3DOpts
class Grid3DOpts(
    # 三維笛卡爾坐標(biāo)系組件在三維場(chǎng)景中的寬度
    width: Numeric = 200,

    # 三維笛卡爾坐標(biāo)系組件在三維場(chǎng)景中的高度。
    height: Numeric = 100,

    # 三維笛卡爾坐標(biāo)系組件在三維場(chǎng)景中的深度。
    depth: Numeric = 80,

    # 是否開(kāi)啟視角繞物體的自動(dòng)旋轉(zhuǎn)查看。
    is_rotate: bool = False,

    # 物體自轉(zhuǎn)的速度。單位為角度 / 秒,默認(rèn)為10 ,也就是 36 秒轉(zhuǎn)一圈。
    rotate_speed: Numeric = 10,

    # 旋轉(zhuǎn)操作的靈敏度,值越大越靈敏。支持使用數(shù)組分別設(shè)置橫向和縱向的旋轉(zhuǎn)靈敏度。
    # 設(shè)置為0后無(wú)法旋轉(zhuǎn)。
    rotate_sensitivity: Numeric = 1,
)

Axis3DOpts:三維坐標(biāo)軸配置項(xiàng)

class pyecharts.options.Axis3DOpts
class Axis3DOpts(
    data: Optional[Sequence] = None,

    # 坐標(biāo)軸類型??蛇x:
    # 'value': 數(shù)值軸,適用于連續(xù)數(shù)據(jù)。
    # 'category': 類目軸,適用于離散的類目數(shù)據(jù),為該類型時(shí)必須通過(guò) data 設(shè)置類目數(shù)據(jù)。
    # 'time': 時(shí)間軸,適用于連續(xù)的時(shí)序數(shù)據(jù),與數(shù)值軸相比時(shí)間軸帶有時(shí)間的格式化,在刻度計(jì)算上也有所不同,
    # 例如會(huì)根據(jù)跨度的范圍來(lái)決定使用月,星期,日還是小時(shí)范圍的刻度。
    # 'log' 對(duì)數(shù)軸。適用于對(duì)數(shù)數(shù)據(jù)。
    type_: Optional[str] = None,

    # 坐標(biāo)軸名稱。
    name: Optional[str] = None,

    # 坐標(biāo)軸名稱與軸線之間的距離,注意是三維空間的距離而非屏幕像素值。
    name_gap: Numeric = 20,

    # 坐標(biāo)軸刻度最小值。
    # 可以設(shè)置成特殊值 'dataMin',此時(shí)取數(shù)據(jù)在該軸上的最小值作為最小刻度。
    # 不設(shè)置時(shí)會(huì)自動(dòng)計(jì)算最小值保證坐標(biāo)軸刻度的均勻分布。
    # 在類目軸中,也可以設(shè)置為類目的序數(shù)(如類目軸 data: ['類A', '類B', '類C'] 中,序數(shù) 2 表示 '類C'。
    # 也可以設(shè)置為負(fù)數(shù),如 -3)。
    min_: Union[str, Numeric, None] = None,

    # 坐標(biāo)軸刻度最大值。
    # 可以設(shè)置成特殊值 'dataMax',此時(shí)取數(shù)據(jù)在該軸上的最大值作為最大刻度。
    # 不設(shè)置時(shí)會(huì)自動(dòng)計(jì)算最大值保證坐標(biāo)軸刻度的均勻分布。
    # 在類目軸中,也可以設(shè)置為類目的序數(shù)(如類目軸 data: ['類A', '類B', '類C'] 中,序數(shù) 2 表示 '類C'。
    # 也可以設(shè)置為負(fù)數(shù),如 -3)。
    max_: Union[str, Numeric, None] = None,

    # 坐標(biāo)軸的分割段數(shù),需要注意的是這個(gè)分割段數(shù)只是個(gè)預(yù)估值,最后實(shí)際顯示的段數(shù)會(huì)在這個(gè)
    # 基礎(chǔ)上根據(jù)分割后坐標(biāo)軸刻度顯示的易讀程度作調(diào)整。
    # 在類目軸中無(wú)效。
    splitnum: Optional[Numeric] = None,

    # 強(qiáng)制設(shè)置坐標(biāo)軸分割間隔。
    # 因?yàn)?splitNumber 是預(yù)估的值,實(shí)際根據(jù)策略計(jì)算出來(lái)的刻度可能無(wú)法達(dá)到想要的效果,
    # 這時(shí)候可以使用 interval 配合 min、max 強(qiáng)制設(shè)定刻度劃分,一般不建議使用。
    # 無(wú)法在類目軸中使用。在時(shí)間軸(type: 'time')中需要傳時(shí)間戳,在對(duì)數(shù)軸(type: 'log')中需要傳指數(shù)值。
    interval: Optional[Numeric] = None,
    margin: Numeric = 8,
    textstyle_opts: Union[TextStyleOpts, dict, None] = None,
)
func pyecharts.charts.Chart3D.add

所有 3D 圖表均擁有以下方法

def add(
    # 系列名稱,用于 tooltip 的顯示,legend 的圖例篩選。
    series_name: str,

    # 系列數(shù)據(jù)
    data: Sequence,

    # 三維柱狀圖中三維圖形的著色效果。
    # color:只顯示顏色,不受光照等其它因素的影響。
    # lambert:通過(guò)經(jīng)典的 lambert 著色表現(xiàn)光照帶來(lái)的明暗。
    # realistic:真實(shí)感渲染,配合 light.ambientCubemap 和 postEffect 使用可以讓展示的畫面效果和質(zhì)感有質(zhì)的提升。
    # ECharts GL 中使用了基于物理的渲染(PBR) 來(lái)表現(xiàn)真實(shí)感材質(zhì)。
    shading: Optional[str] = None,

    # 圖元配置項(xiàng),參考 `series_options.ItemStyleOpts`
    itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None

    # 標(biāo)簽配置項(xiàng),參考 `series_options.LabelOpts`
    label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(is_show=False),

    # 3D X 坐標(biāo)軸配置項(xiàng),參考 `Axis3DOpts`
    xaxis3d_opts: Union[opts.Axis3DOpts, dict] = opts.Axis3DOpts(type_="category"),

    # 3D Y 坐標(biāo)軸配置項(xiàng),參考 `Axis3DOpts`
    yaxis3d_opts: Union[opts.Axis3DOpts, dict] = opts.Axis3DOpts(type_="category"),

    # 3D Z 坐標(biāo)軸配置項(xiàng),參考 `Axis3DOpts`
    zaxis3d_opts: Union[opts.Axis3DOpts, dict] = opts.Axis3DOpts(type_="value"),

    # 三維笛卡爾坐標(biāo)系配置項(xiàng),參考 `Grid3DOpts`
    grid3d_opts: Union[opts.Grid3DOpts, dict] = opts.Grid3DOpts(),
)

Bar3D:3D柱狀圖

class pyecharts.charts.Bar3D(Chart3D)
class Bar3D(
    # 初始化配置項(xiàng),參考 `global_options.InitOpts`
    init_opts: opts.InitOpts = opts.InitOpts()
)

Demo

gallery 示例

Line3D:3D折線圖

class pyecharts.charts.Line3D(Chart3D)
class Line3D(
    # 初始化配置項(xiàng),參考 `global_options.InitOpts`
    init_opts: opts.InitOpts = opts.InitOpts()
)

Demo

gallery 示例

Scatter3D:3D散點(diǎn)圖

class pyecharts.charts.Scatter3D(Chart3D)
class Scatter3D(
    # 初始化配置項(xiàng),參考 `global_options.InitOpts`
    init_opts: opts.InitOpts = opts.InitOpts()
)

Demo

gallery 示例

Surface3D:3D曲面圖

class pyecharts.charts.Surface3D(Chart3D)
class Surface3D(
    # 初始化配置項(xiàng),參考 `global_options.InitOpts`
    init_opts: opts.InitOpts = opts.InitOpts()
)

Demo

gallery 示例

Map3D - 三維地圖

class pyecharts.charts.Map3D(Chart3D)
class Map3D(
    # 初始化配置項(xiàng),參考 `global_options.InitOpts`
    init_opts: opts.InitOpts = opts.InitOpts()
)
func pyecharts.charts.Map3D.add
def add(
    # 系列名稱,用于 tooltip 的顯示,legend 的圖例篩選。
    series_name: str,

    # 數(shù)據(jù)項(xiàng) (坐標(biāo)點(diǎn)名稱,坐標(biāo)點(diǎn)值)
    data_pair: types.Sequence,

    # 疊加圖的類型(目前只支持 Bar3D,Line3D,Lines3D,Scatter3D)
    type_: ChartType = None,

    # 地圖類型,具體參考 pyecharts.datasets.map_filenames.json 文件
    maptype: str = "china",

    # 是否選中圖例
    is_selected: bool = True,

    # 是否顯示標(biāo)記圖形
    is_map_symbol_show: bool = True,

    # 使用的 grid3D 組件的索引。默認(rèn)使用第一個(gè) grid3D 組件。
    grid_3d_index: types.Numeric = 0,

    # 坐標(biāo)軸使用的 geo3D 組件的索引。默認(rèn)使用第一個(gè) geo3D 組件。
    geo_3d_index: types.Numeric = 0,

    # 坐標(biāo)軸使用的 globe 組件的索引。默認(rèn)使用第一個(gè) globe 組件。
    globe_index: types.Numeric = 0,

    # 僅在 bar3D 下起作用
    # 設(shè)置柱子的大小
    bar_size: types.Optional[types.Numeric] = None,

    # 僅在 bar3D 下起作用
    # 柱子的倒角尺寸。支持設(shè)置為從 0 到 1 的值。默認(rèn)為 0,即沒(méi)有倒角。
    bevel_size: types.Numeric = 0,

    # 僅在 bar3D 下起作用
    # 柱子倒角的光滑/圓潤(rùn)度,數(shù)值越大越光滑/圓潤(rùn)。
    bevel_smoothness: types.Numeric = 2,

    # 僅在 bar3D 下起作用
    # 柱狀圖堆疊,相同 stack 值的柱狀圖系列數(shù)據(jù)會(huì)有疊加。
    # 注意不同系列需要疊加的數(shù)據(jù)項(xiàng)在數(shù)組中的索引必須是一樣的。
    stack: types.Optional[str] = None,

    # 僅在 bar3D 下起作用
    # 最小柱子高度。
    min_height: types.Numeric = 2,

    # 僅在 Scatter3D 起作用;
    # 散點(diǎn)的形狀。默認(rèn)為圓形。
    # ECharts 提供的標(biāo)記類型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'
    # 可以通過(guò) 'path://' 將圖標(biāo)設(shè)置為任意的矢量路徑。
    # 這種方式相比于使用圖片的方式,不用擔(dān)心因?yàn)榭s放而產(chǎn)生鋸齒或模糊,而且可以設(shè)置為任意顏色。
    # 路徑圖形會(huì)自適應(yīng)調(diào)整為合適(如果是 symbol 的話就是 symbolSize)的大小。
    symbol: str = "circle",

    # 僅在 Scatter3D 起作用;
    # 標(biāo)記的大小,可以設(shè)置成諸如 10 這樣單一的數(shù)字,也可以用數(shù)組分開(kāi)表示寬和高,例如 [20, 10] 表示標(biāo)記寬為20,高為10。
    symbol_size: types.Union[types.Numeric, types.Sequence, types.JSFunc] = 10,

    # 混合模式,目前支持'source-over','lighter'。
    # 默認(rèn)使用的'source-over'是通過(guò) alpha 混合。
    # 而'lighter'是疊加模式,該模式可以讓數(shù)據(jù)集中的區(qū)域因?yàn)榀B加而產(chǎn)生高亮的效果。
    blend_mode: str = "source-over",

    # 僅在 Lines3D 起作用
    # 是否是多段線。
    # 默認(rèn)為 false,只能用于繪制只有兩個(gè)端點(diǎn)的線段(表現(xiàn)為被賽爾曲線)。
    # 如果該配置項(xiàng)為 true,則可以在 data.coords 中設(shè)置多于 2 個(gè)的頂點(diǎn)用來(lái)繪制多段線,在繪制路線軌跡的時(shí)候比較有用。
    is_polyline: bool = False,

    # 僅在 Lines3D 起作用
    # 飛線的尾跡特效,參考 `series_options.Line3DEffectOpts`
    effect: types.Lines3DEffect = None,

    # 僅在 Line3D,Lines3D 起作用
    # 飛線的線條樣式,參考 `series_options.LineStyleOpts`
    linestyle_opts: types.LineStyle = opts.LineStyleOpts(),

    # 僅在 Scatter3D,Bar3D,Map3D 起作用
    # 標(biāo)簽配置項(xiàng),參考 `series_options.LabelOpts`
    label_opts: types.Label = opts.LabelOpts(),

    # 提示框組件配置項(xiàng),參考 `series_options.TooltipOpts`
    tooltip_opts: types.Tooltip = None,

    # 僅在 Scatter3D,Bar3D,Map3D 起作用
    # 圖元樣式配置項(xiàng),參考 `series_options.ItemStyleOpts`
    itemstyle_opts: types.ItemStyle = None,

    # 僅在 Scatter3D,Bar3D,Map3D 起作用
    # 高亮標(biāo)簽配置項(xiàng),參考 `series_options.LabelOpts`
    emphasis_label_opts: types.Label = None,

    # 僅在 Scatter3D,Bar3D,Map3D 起作用
    # 高亮圖元樣式配置項(xiàng),參考 `series_options.ItemStyleOpts`
    emphasis_itemstyle_opts: types.ItemStyle = None,

    # 三維地圖中三維圖形的著色效果。echarts-gl 中支持下面三種著色方式:
    # color: 只顯示顏色,不受光照等其它因素的影響。
    # lambert: 通過(guò)經(jīng)典的 lambert 著色表現(xiàn)光照帶來(lái)的明暗。
    # realistic: 真實(shí)感渲染,配合 light.ambientCubemap 和 postEffect 使用可以讓展示的畫面效果和質(zhì)感有質(zhì)的提升。
    # ECharts GL 中使用了基于物理的渲染(PBR) 來(lái)表現(xiàn)真實(shí)感材質(zhì)。
    shading: types.Optional[str] = None,

    # 真實(shí)感材質(zhì)相關(guān)的配置項(xiàng),在 shading 為'realistic'時(shí)有效。
    realistic_material_opts: types.Optional[types.Map3DRealisticMaterial] = None,

    # lambert 材質(zhì)相關(guān)的配置項(xiàng),在 shading 為'lambert'時(shí)有效。
    lambert_material_opts: types.Optional[types.Map3DLambertMaterial] = None,

    # color 材質(zhì)相關(guān)的配置項(xiàng),在 shading 為'color'時(shí)有效。
    color_material_opts: types.Optional[types.Map3DColorMaterial] = None,

    # 組件所在的層。
    zlevel: types.Numeric = -10,

    # 圖形是否不響應(yīng)和觸發(fā)鼠標(biāo)事件,默認(rèn)為 false,即響應(yīng)和觸發(fā)鼠標(biāo)事件。
    is_silent: bool = False,

    # 是否開(kāi)啟動(dòng)畫。
    is_animation: bool = True,

    # 過(guò)渡動(dòng)畫的時(shí)長(zhǎng)。
    animation_duration_update: types.Numeric = 100,

    # 過(guò)渡動(dòng)畫的緩動(dòng)效果。
    animation_easing_update: types.Numeric = "cubicOut",
):
func pyecharts.charts.Map3D.add_schema
def add_schema(
    # 地圖類型,具體參考 pyecharts.datasets.map_filenames.json 文件
    maptype: str = "china",

    # 名稱
    name: types.Optional[str] = None,

    # 三維地理坐標(biāo)系組件在三維場(chǎng)景中的寬度。
    # 具體圖示在此: https://www.echartsjs.com/zh/documents/asset/gl/img/geo-size.png
    box_width: types.Optional[types.Numeric] = 100,

    # 三維地理坐標(biāo)系組件在三維場(chǎng)景中的高度。
    # 組件高度。這個(gè)高度包含三維地圖上的柱狀圖、散點(diǎn)圖的高度。
    box_height: types.Optional[types.Numeric] = 10,

    # 三維地理坐標(biāo)系組件在三維場(chǎng)景中的深度。
    # 組件深度默認(rèn)自動(dòng),保證三維組件的顯示比例跟輸入的 GeoJSON 的比例相同。
    box_depth: types.Optional[types.Numeric] = None,

    # 三維地圖每個(gè)區(qū)域的高度。這個(gè)高度是模型的高度,小于 boxHeight。
    # boxHeight - regionHeight 這一片區(qū)域會(huì)被用于三維柱狀圖,散點(diǎn)圖等的展示。
    region_height: types.Optional[types.Numeric] = 3,

    # 環(huán)境貼圖。支持純色、漸變色、全景貼圖的 url。
    # 默認(rèn)為 'auto',在配置有 light.ambientCubemap.texture 的時(shí)候會(huì)使用該紋理作為環(huán)境貼圖。
    # 否則則不顯示環(huán)境貼圖。
    # 示例:
    #  // 配置為全景貼圖
    #  environment: 'asset/starfield.jpg'
    #  // 配置為純黑色的背景
    #  environment: '#000'
    #  // 配置為垂直漸變的背景
    #  environment: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
    #    offset: 0, color: '#00aaff' // 天空顏色
    #  }, {
    #    offset: 0.7, color: '#998866' // 地面顏色
    #  }, {
    #    offset: 1, color: '#998866' // 地面顏色
    #  }], false)
    environment: types.Optional[types.JSFunc] = None,

    # 是否顯示地面。
    # 地面可以讓整個(gè)組件有個(gè)“擺放”的地方,從而使整個(gè)場(chǎng)景看起來(lái)更真實(shí),更有模型感。
    is_show_ground: bool = False,

    # 地面顏色。
    ground_color: str = "#aaa",

    # instancing會(huì)將 GeoJSON 中所有的 geometry 合并成一個(gè)
    # 在 GeoJSON 擁有特別多(上千)的 geometry 時(shí)可以有效提升繪制效率。
    is_instancing: bool = False,

    # Map3D 的 Label 設(shè)置
    map3d_label: types.Map3DLabel = None,

    # 圖元樣式配置項(xiàng),參考 `series_options.ItemStyleOpts`
    itemstyle_opts: types.ItemStyle = None,

    # 高亮標(biāo)簽配置項(xiàng),參考 `series_options.LabelOpts`
    emphasis_label_opts: types.Label = None,

    # 高亮圖元樣式配置項(xiàng),參考 `series_options.ItemStyleOpts`
    emphasis_itemstyle_opts: types.ItemStyle = None,

    # 三維地理坐標(biāo)系組件中三維圖形的著色效果。echarts-gl 中支持下面三種著色方式:
    # color: 只顯示顏色,不受光照等其它因素的影響。
    # lambert: 通過(guò)經(jīng)典的 lambert 著色表現(xiàn)光照帶來(lái)的明暗。
    # realistic: 真實(shí)感渲染,配合 light.ambientCubemap 和 postEffect 使用可以讓展示的畫面效果和質(zhì)感有質(zhì)的提升。
    # ECharts GL 中使用了基于物理的渲染(PBR) 來(lái)表現(xiàn)真實(shí)感材質(zhì)。
    shading: types.Optional[str] = None,

    # 真實(shí)感材質(zhì)相關(guān)的配置項(xiàng),在 shading 為'realistic'時(shí)有效。
    realistic_material_opts: types.Optional[types.Map3DRealisticMaterial] = None,

    # lambert 材質(zhì)相關(guān)的配置項(xiàng),在 shading 為'lambert'時(shí)有效。
    lambert_material_opts: types.Optional[types.Map3DLambertMaterial] = None,

    # color 材質(zhì)相關(guān)的配置項(xiàng),在 shading 為'color'時(shí)有效。
    color_material_opts: types.Optional[types.Map3DColorMaterial] = None,

    # 光照相關(guān)的設(shè)置。在 shading 為 'color' 的時(shí)候無(wú)效。
    # 光照的設(shè)置會(huì)影響到組件以及組件所在坐標(biāo)系上的所有圖表。
    # 合理的光照設(shè)置能夠讓整個(gè)場(chǎng)景的明暗變得更豐富,更有層次。
    light_opts: types.Optional[types.Map3DLight] = None,

    # 后處理特效的相關(guān)配置。后處理特效可以為畫面添加高光、景深、環(huán)境光遮蔽(SSAO)、調(diào)色等效果??梢宰屨麄€(gè)畫面更富有質(zhì)感。
    post_effect_opts: types.Optional[types.Map3DPostEffect] = None,

    # 是否開(kāi)啟分幀超采樣。默認(rèn)在開(kāi)啟 postEffect 后也會(huì)同步開(kāi)啟。
    is_enable_super_sampling: types.Union[str, bool] = "auto",

    # viewControl用于鼠標(biāo)的旋轉(zhuǎn),縮放等視角控制。
    view_control_opts: types.Optional[types.Map3DViewControl] = None,

    # 組件所在的層。
    zlevel: types.Optional[types.Numeric] = -10,

    # 組件的視圖離容器左側(cè)的距離。
    # left 的值可以是像 20 這樣的具體像素值,可以是像 '20%' 這樣相對(duì)于容器高寬的百分比,
    # 也可以是 'left', 'center', 'right'。
    # 如果 left 的值為'left', 'center', 'right',組件會(huì)根據(jù)相應(yīng)的位置自動(dòng)對(duì)齊。
    pos_left: types.Union[types.Numeric, str] = "auto",

    # 組件的視圖離容器上側(cè)的距離。
    pos_top: types.Union[types.Numeric, str] = "auto",

    # 組件的視圖離容器右側(cè)的距離。
    pos_right: types.Union[types.Numeric, str] = "auto",

    # 組件的視圖離容器下側(cè)的距離。
    pos_bottom: types.Union[types.Numeric, str] = "auto",

    # 組件的視圖寬度。
    pos_width: types.Union[types.Numeric, str] = "auto",

    # 組件的視圖高度。
    pos_height: types.Union[types.Numeric, str] = "auto",
)
class pyecharts.options.charts_options.Map3DLabelOpts
class Map3DLabelOpts(
    # 是否顯示標(biāo)簽。
    is_show: bool = True,

    # 標(biāo)簽距離圖形的距離,在三維的散點(diǎn)圖中這個(gè)距離是屏幕空間的像素值,其它圖中這個(gè)距離是相對(duì)的三維距離。
    distance: Numeric = None,

    # 標(biāo)簽內(nèi)容格式器,支持字符串模板和回調(diào)函數(shù)兩種形式,字符串模板與回調(diào)函數(shù)返回的字符串均支持用 \n 換行。
    # 模板變量有:
    # {a}:系列名。
    # :數(shù)據(jù)名。
    # {c}:數(shù)據(jù)值。
    formatter: Optional[JSFunc] = None,

    # 標(biāo)簽的字體樣式。
    text_style: Union[TextStyleOpts, dict, None] = None,
)
class pyecharts.options.charts_options.Map3DRealisticMaterialOpts
class Map3DRealisticMaterialOpts(
    # 材質(zhì)細(xì)節(jié)的紋理貼圖。
    detail_texture: Optional[JSFunc] = None,

    # 材質(zhì)細(xì)節(jié)紋理的平鋪。默認(rèn)為1,也就是拉伸填滿。大于 1 的時(shí)候,數(shù)字表示紋理平鋪重復(fù)的次數(shù)。
    # 注: 使用平鋪需要 detailTexture 的高寬是 2 的 n 次方。例如 512x512,如果是 200x200 的紋理無(wú)法使用平鋪。
    texture_tiling: Numeric = 1,

    # 材質(zhì)細(xì)節(jié)紋理的位移。
    texture_offset: Numeric = 0,

    # roughness 屬性用于表示材質(zhì)的粗糙度,0為完全光滑,1完全粗糙,中間的值則是介于這兩者之間。
    roughness: Numeric = 0.5,

    # metalness屬性用于表示材質(zhì)是金屬還是非金屬,0為非金屬,1為金屬,中間的值則是介于這兩者之間。
    # 通常設(shè)成0和1就能滿足大部分場(chǎng)景了。
    metalness: Numeric = 0,

    # 粗糙度調(diào)整,在使用粗糙度貼圖的時(shí)候有用??梢詫?duì)貼圖整體的粗糙度進(jìn)行調(diào)整。
    # 默認(rèn)為 0.5,0的時(shí)候?yàn)橥耆饣?的時(shí)候?yàn)橥耆植凇?    roughness_adjust: Numeric = 0.5,

    # 金屬度調(diào)整,在使用金屬度貼圖的時(shí)候有用??梢詫?duì)貼圖整體的金屬度進(jìn)行調(diào)整。
    # 默認(rèn)為 0.5,0的時(shí)候?yàn)榉墙饘伲?的時(shí)候?yàn)榻饘佟?    metalness_adjust: Numeric = 0.5,

    # 材質(zhì)細(xì)節(jié)的法線貼圖。
    # 使用法線貼圖可以在較少的頂點(diǎn)下依然表現(xiàn)出物體表面豐富的明暗細(xì)節(jié)。
    normal_texture: Optional[JSFunc] = None,
)
class pyecharts.options.charts_options.Map3DLambertMaterialOpts
class Map3DLambertMaterialOpts(
    # 材質(zhì)細(xì)節(jié)的紋理貼圖。
    detail_texture: Optional[JSFunc] = None,

    # 材質(zhì)細(xì)節(jié)紋理的平鋪。默認(rèn)為1,也就是拉伸填滿。大于 1 的時(shí)候,數(shù)字表示紋理平鋪重復(fù)的次數(shù)。
    # 注: 使用平鋪需要 detailTexture 的高寬是 2 的 n 次方。例如 512x512,如果是 200x200 的紋理無(wú)法使用平鋪。
    texture_tiling: Numeric = 1,

    # 材質(zhì)細(xì)節(jié)紋理的位移。
    texture_offset: Numeric = 0,
)
class pyecharts.options.charts_options.Map3DColorMaterialOpts
class Map3DColorMaterialOpts(
    # 材質(zhì)細(xì)節(jié)的紋理貼圖。
    detail_texture: Optional[JSFunc] = None,

    # 材質(zhì)細(xì)節(jié)紋理的平鋪。默認(rèn)為1,也就是拉伸填滿。大于 1 的時(shí)候,數(shù)字表示紋理平鋪重復(fù)的次數(shù)。
    # 注: 使用平鋪需要 detailTexture 的高寬是 2 的 n 次方。例如 512x512,如果是 200x200 的紋理無(wú)法使用平鋪。
    texture_tiling: Numeric = 1,

    # 材質(zhì)細(xì)節(jié)紋理的位移。
    texture_offset: Numeric = 0,
)
class pyecharts.options.charts_options.Map3DLightOpts
class Map3DLightOpts(
    # 主光源的顏色。
    main_color: str = "#fff",

    # 主光源的強(qiáng)度。
    main_intensity: Numeric = 1,

    # 主光源是否投射陰影。默認(rèn)為關(guān)閉。
    # 開(kāi)啟陰影可以給場(chǎng)景帶來(lái)更真實(shí)和有層次的光照效果。但是同時(shí)也會(huì)增加程序的運(yùn)行開(kāi)銷。
    is_main_shadow: bool = False,

    # 陰影的質(zhì)量??蛇x'low', 'medium', 'high', 'ultra'
    main_shadow_quality: str = "medium",

    # 主光源繞 x 軸,即上下旋轉(zhuǎn)的角度。配合 beta 控制光源的方向。
    # 圖示: https://www.echartsjs.com/zh/documents/asset/gl/img/light-alpha-beta.png
    main_alpha: Numeric = 40,

    # 主光源繞 y 軸,即左右旋轉(zhuǎn)的角度。
    main_beta: Numeric = 40,

    # 環(huán)境光的顏色。
    ambient_color: str = "#fff",

    # 環(huán)境光的強(qiáng)度。
    ambient_intensity: Numeric = 0.2,

    # 環(huán)境光貼圖的 url,支持使用.hdr格式的 HDR 圖片。
    # 可以從 http://www.hdrlabs.com/sibl/archive.html 等網(wǎng)站獲取 .hdr 的資源。
    ambient_cubemap_texture: Optional[str] = None,

    # 漫反射的強(qiáng)度。
    ambient_cubemap_diffuse_intensity: Numeric = 0.5,

    # 高光反射的強(qiáng)度。
    ambient_cubemap_specular_intensity: Numeric = 0.5,
)
class pyecharts.options.charts_options.Map3DPostEffectOpts
class Map3DPostEffectOpts(
    # 是否開(kāi)啟后處理特效。默認(rèn)關(guān)閉。
    is_enable: bool = False,

    # 是否開(kāi)啟光暈特效。
    is_bloom_enable: bool = False,

    # 光暈的強(qiáng)度,默認(rèn)為 0.1
    bloom_intensity: Numeric = 0.1,

    # 是否開(kāi)啟景深。
    is_depth_field_enable: bool = False,

    # 初始的焦距,用戶可以點(diǎn)擊區(qū)域自動(dòng)聚焦。
    depth_field_focal_distance: Numeric = 50,

    # 完全聚焦的區(qū)域范圍,在此范圍內(nèi)的物體時(shí)完全清晰的,不會(huì)有模糊
    depth_field_focal_range: Numeric = 20,

    # 鏡頭的F值,值越小景深越淺。
    depth_field_fstop: Numeric = 2.8,

    # 焦外的模糊半徑
    depth_field_blur_radius: Numeric = 10,

    # 是否開(kāi)啟環(huán)境光遮蔽。默認(rèn)不開(kāi)啟。
    is_ssao_enable: bool = False,

    # 環(huán)境光遮蔽的質(zhì)量。支持'low', 'medium', 'high', 'ultra'。
    ssao_quality: str = "medium",

    # 環(huán)境光遮蔽的采樣半徑。半徑越大效果越自然,但是需要設(shè)置較高的'quality'。
    ssao_radius: Numeric = 2,

    # 環(huán)境光遮蔽的強(qiáng)度。值越大顏色越深。
    ssao_intensity: Numeric = 1,

    # 是否開(kāi)啟顏色糾正。
    is_color_correction_enable: bool = False,

    # 參考 Echarts 官方解釋。
    # 地址:https://www.echartsjs.com/zh/option-gl.html#geo3D.postEffect.colorCorrection.lookupTexture
    color_correction_lookup_texture: Optional[JSFunc] = None,

    # 畫面的曝光。
    color_correction_exposure: Numeric = 0,

    # 畫面的亮度。
    color_correction_brightness: Numeric = 0,

    # 畫面的對(duì)比度。
    color_correction_contrast: Numeric = 1,

    # 畫面的飽和度。
    color_correction_saturation: Numeric = 1,

    # 是否開(kāi)啟 FXAA。默認(rèn)為不開(kāi)啟。
    is_fxaa_enable: bool = False,
)
class pyecharts.options.charts_options.Map3DViewControlOpts
class Map3DViewControlOpts(
    # 投影方式,默認(rèn)為透視投影'perspective',也支持設(shè)置為正交投影'orthographic'。
    projection: str = "perspective",

    # 是否開(kāi)啟視角繞物體的自動(dòng)旋轉(zhuǎn)查看。
    auto_rotate: bool = False,

    # 物體自轉(zhuǎn)的方向。默認(rèn)是 'cw' 也就是從上往下看是順時(shí)針?lè)较?,也可以?'ccw',既從上往下看為逆時(shí)針?lè)较颉?    auto_rotate_direction: str = "cw",

    # 物體自轉(zhuǎn)的速度。單位為角度 / 秒,默認(rèn)為10 ,也就是36秒轉(zhuǎn)一圈。
    auto_rotate_speed: Numeric = 10,

    # 在鼠標(biāo)靜止操作后恢復(fù)自動(dòng)旋轉(zhuǎn)的時(shí)間間隔。在開(kāi)啟 autoRotate 后有效。
    auto_rotate_after_still: Numeric = 3,

    # 鼠標(biāo)進(jìn)行旋轉(zhuǎn),縮放等操作時(shí)的遲滯因子,在大于 0 的時(shí)候鼠標(biāo)在停止操作后,視角仍會(huì)因?yàn)橐欢ǖ膽T性繼續(xù)運(yùn)動(dòng)(旋轉(zhuǎn)和縮放)。
    damping: Numeric = 0.8,

    # 旋轉(zhuǎn)操作的靈敏度,值越大越靈敏。支持使用數(shù)組分別設(shè)置橫向和縱向的旋轉(zhuǎn)靈敏度。
    # 默認(rèn)為1。
    # 設(shè)置為0后無(wú)法旋轉(zhuǎn)。
    # // 無(wú)法旋轉(zhuǎn)
    # rotateSensitivity: 0
    # // 只能橫向旋轉(zhuǎn)
    # rotateSensitivity: [1, 0]
    # // 只能縱向旋轉(zhuǎn)
    # rotateSensitivity: [0, 1]
    rotate_sensitivity: Union[Numeric, Sequence] = 1,

    # 縮放操作的靈敏度,值越大越靈敏。默認(rèn)為1。
    # 設(shè)置為0后無(wú)法縮放。
    zoom_sensitivity: Numeric = 1,

    # 平移操作的靈敏度,值越大越靈敏。支持使用數(shù)組分別設(shè)置橫向和縱向的平移靈敏度
    # 默認(rèn)為1。
    # 設(shè)置為0后無(wú)法平移。
    pan_sensitivity: Numeric = 1,

    # 平移操作使用的鼠標(biāo)按鍵,支持:
    #  'left' 鼠標(biāo)左鍵(默認(rèn))
    #  'middle' 鼠標(biāo)中鍵
    #  'right' 鼠標(biāo)右鍵
    #  注意:如果設(shè)置為鼠標(biāo)右鍵則會(huì)阻止默認(rèn)的右鍵菜單。
    pan_mouse_button: str = "left",

    # 旋轉(zhuǎn)操作使用的鼠標(biāo)按鍵,支持:
    #  'left' 鼠標(biāo)左鍵(默認(rèn))
    #  'middle' 鼠標(biāo)中鍵
    #  'right' 鼠標(biāo)右鍵
    #  注意:如果設(shè)置為鼠標(biāo)右鍵則會(huì)阻止默認(rèn)的右鍵菜單。
    rotate_mouse_button: str = "middle",

    # 默認(rèn)視角距離主體的距離,對(duì)于 globe 來(lái)說(shuō)是距離地球表面的距離
    # 對(duì)于 grid3D 和 geo3D 等其它組件來(lái)說(shuō)是距離中心原點(diǎn)的距離。
    # 在 projection 為'perspective'的時(shí)候有效。
    distance: Numeric = 100,

    # 視角通過(guò)鼠標(biāo)控制能拉近到主體的最小距離。在 projection 為'perspective'的時(shí)候有效。
    min_distance: Numeric = 40,

    # 視角通過(guò)鼠標(biāo)控制能拉遠(yuǎn)到主體的最大距離。在 projection 為'perspective'的時(shí)候有效。
    max_distance: Numeric = 400,

    # 正交投影的大小。在 projection 為'orthographic'的時(shí)候有效。
    orthographic_size: Numeric = 100,

    # 正交投影縮放的最大值。在 projection 為'orthographic'的時(shí)候有效。
    min_orthographic_size: Numeric = 20,

    # 正交投影縮放的最小值。在 projection 為'orthographic'的時(shí)候有效。
    max_orthographic_size: Numeric = 400,

    # 視角繞 x 軸,即上下旋轉(zhuǎn)的角度。配合 beta 可以控制視角的方向。
    alpha: Numeric = 40,

    # 視角繞 y 軸,即左右旋轉(zhuǎn)的角度。
    beta: Numeric = 0,

    # 視角中心點(diǎn),旋轉(zhuǎn)也會(huì)圍繞這個(gè)中心點(diǎn)旋轉(zhuǎn),默認(rèn)為[0,0,0]。
    center: Optional[Sequence] = None,

    # 上下旋轉(zhuǎn)的最小 alpha 值。即視角能旋轉(zhuǎn)到達(dá)最上面的角度。
    min_alpha: Numeric = 5,

    # 上下旋轉(zhuǎn)的最大 alpha 值。即視角能旋轉(zhuǎn)到達(dá)最下面的角度。
    max_alpha: Numeric = 90,

    # 左右旋轉(zhuǎn)的最小 beta 值。即視角能旋轉(zhuǎn)到達(dá)最左的角度。
    min_beta: Numeric = -80,

    # 左右旋轉(zhuǎn)的最大 beta 值。即視角能旋轉(zhuǎn)到達(dá)最右的角度。
    max_beta: Numeric = 80,

    # 是否開(kāi)啟動(dòng)畫。
    animation: bool = True,

    # 過(guò)渡動(dòng)畫的時(shí)長(zhǎng)。
    animation_duration_update: Numeric = 1000,

    # 過(guò)渡動(dòng)畫的緩動(dòng)效果。
    animation_easing_update: str = "cubicInOut",
)

Demo

gallery 示例


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)