日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python绘制3D图表

發布時間:2023/12/29 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python绘制3D图表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

pyecharts繪制3D圖表
參數配置和說明
Grid3DOptsAxis3DOpts為3D圖標需要配置項
Grid3DOpts:三位坐標系配置項
class pyecharts.options.Grid3DOpts

class Grid3DOpts(# 三維笛卡爾坐標系組件在三維場景中的寬度width: Numeric = 200,# 三維笛卡爾坐標系組件在三維場景中的高度。height: Numeric = 100,# 三維笛卡爾坐標系組件在三維場景中的深度。depth: Numeric = 80,# 是否開啟視角繞物體的自動旋轉查看。is_rotate: bool = False,# 物體自轉的速度。單位為角度 / 秒,默認為10 ,也就是 36 秒轉一圈。rotate_speed: Numeric = 10,# 旋轉操作的靈敏度,值越大越靈敏。支持使用數組分別設置橫向和縱向的旋轉靈敏度。# 設置為0后無法旋轉。rotate_sensitivity: Numeric = 1, )

Axis3DOpts: 三位坐標軸配置項

class Axis3DOpts(data: Optional[Sequence] = None,# 坐標軸類型。可選:# 'value': 數值軸,適用于連續數據。# 'category': 類目軸,適用于離散的類目數據,為該類型時必須通過 data 設置類目數據。# 'time': 時間軸,適用于連續的時序數據,與數值軸相比時間軸帶有時間的格式化,在刻度計算上也有所不同,# 例如會根據跨度的范圍來決定使用月,星期,日還是小時范圍的刻度。# 'log' 對數軸。適用于對數數據。type_: Optional[str] = None,# 坐標軸名稱。name: Optional[str] = None,# 坐標軸名稱與軸線之間的距離,注意是三維空間的距離而非屏幕像素值。name_gap: Numeric = 20,# 坐標軸刻度最小值。# 可以設置成特殊值 'dataMin',此時取數據在該軸上的最小值作為最小刻度。# 不設置時會自動計算最小值保證坐標軸刻度的均勻分布。# 在類目軸中,也可以設置為類目的序數(如類目軸 data: ['類A', '類B', '類C'] 中,序數 2 表示 '類C'。# 也可以設置為負數,如 -3)。min_: Union[str, Numeric, None] = None,# 坐標軸刻度最大值。# 可以設置成特殊值 'dataMax',此時取數據在該軸上的最大值作為最大刻度。# 不設置時會自動計算最大值保證坐標軸刻度的均勻分布。# 在類目軸中,也可以設置為類目的序數(如類目軸 data: ['類A', '類B', '類C'] 中,序數 2 表示 '類C'。# 也可以設置為負數,如 -3)。max_: Union[str, Numeric, None] = None,# 坐標軸的分割段數,需要注意的是這個分割段數只是個預估值,最后實際顯示的段數會在這個# 基礎上根據分割后坐標軸刻度顯示的易讀程度作調整。# 在類目軸中無效。splitnum: Optional[Numeric] = None,# 強制設置坐標軸分割間隔。# 因為 splitNumber 是預估的值,實際根據策略計算出來的刻度可能無法達到想要的效果,# 這時候可以使用 interval 配合 min、max 強制設定刻度劃分,一般不建議使用。# 無法在類目軸中使用。在時間軸(type: 'time')中需要傳時間戳,在對數軸(type: 'log')中需要傳指數值。interval: Optional[Numeric] = None,margin: Numeric = 8,textstyle_opts: Union[TextStyleOpts, dict, None] = None,)

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

def add(# 系列名稱,用于 tooltip 的顯示,legend 的圖例篩選。series_name: str,# 系列數據data: Sequence,# 三維柱狀圖中三維圖形的著色效果。# color:只顯示顏色,不受光照等其它因素的影響。# lambert:通過經典的 lambert 著色表現光照帶來的明暗。# realistic:真實感渲染,配合 light.ambientCubemap 和 postEffect 使用可以讓展示的畫面效果和質感有質的提升。# ECharts GL 中使用了基于物理的渲染(PBR) 來表現真實感材質。shading: Optional[str] = None,# 圖元配置項,參考 `series_options.ItemStyleOpts`itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None# 標簽配置項,參考 `series_options.LabelOpts`label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(is_show=False),# 3D X 坐標軸配置項,參考 `Axis3DOpts`xaxis3d_opts: Union[opts.Axis3DOpts, dict] = opts.Axis3DOpts(type_="category"),# 3D Y 坐標軸配置項,參考 `Axis3DOpts`yaxis3d_opts: Union[opts.Axis3DOpts, dict] = opts.Axis3DOpts(type_="category"),# 3D Z 坐標軸配置項,參考 `Axis3DOpts`zaxis3d_opts: Union[opts.Axis3DOpts, dict] = opts.Axis3DOpts(type_="value"),# 三維笛卡爾坐標系配置項,參考 `Grid3DOpts`grid3d_opts: Union[opts.Grid3DOpts, dict] = opts.Grid3DOpts(), )

Example:
繪制3D柱狀圖
Bar3D

import randomfrom pyecharts import options as opts # 導入繪制三維柱狀圖的庫 Bar3D from pyecharts.charts import Bar3D from pyecharts.faker import Fakerdata = [(i, j, random.randint(0, 12)) for i in range(6) for j in range(24)] c = (Bar3D().add("",[[d[1], d[0], d[2]] for d in data],xaxis3d_opts=opts.Axis3DOpts(Faker.clock, type_="category"),yaxis3d_opts=opts.Axis3DOpts(Faker.week_en, type_="category"),zaxis3d_opts=opts.Axis3DOpts(type_="value"),).set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=20),title_opts=opts.TitleOpts(title="Bar3D-基本示例"),) ) c.render_notebook()


需要說明一下pyecharts.fakter
Faker數據集是Pyecharts自帶的數據集.Pyecharts圖標案例中使用的可視化數據來源都源于pyecharts中的faker.py文件.
Lin3d:3D折線圖

import mathimport pyecharts.options as opts from pyecharts.charts import Line3Dweek_en = "Saturday Friday Thursday Wednesday Tuesday Monday Sunday".split() clock = ("12a 1a 2a 3a 4a 5a 6a 7a 8a 9a 10a 11a 12p ""1p 2p 3p 4p 5p 6p 7p 8p 9p 10p 11p".split() )data = [] for t in range(0, 25000):_t = t / 1000x = (1 + 0.25 * math.cos(75 * _t)) * math.cos(_t)y = (1 + 0.25 * math.cos(75 * _t)) * math.sin(_t)z = _t + 2.0 * math.sin(75 * _t)data.append([x, y, z])c=(Line3D().add("",data,xaxis3d_opts=opts.Axis3DOpts(data=clock, type_="value"),yaxis3d_opts=opts.Axis3DOpts(data=week_en, type_="value"),grid3d_opts=opts.Grid3DOpts(width=100, height=100, depth=100),).set_global_opts(visualmap_opts=opts.VisualMapOpts(dimension=2,max_=30,min_=0,range_color=["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026",],)) ) c.render_notebook()


3D圖還包括
Surface3D:3D曲面圖
Scatter3D:3D散點圖
Map3D:三維地圖等等 還有介紹pyecharts的全局配置項和系列配置項,可以完成一個完成的網頁可視化展示 都在官網https://pyecharts.org/#/zh-cn/intro,有不懂的可以留言,或者更好的代碼,歡迎大家一起討論

總結

以上是生活随笔為你收集整理的python绘制3D图表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。