一、坐标轴范围

import plotly.graph_objects as go
import numpy as np
np.random.seed(1)N = 70fig = go.Figure(data=[go.Mesh3d(x=(70*np.random.randn(N)),y=(55*np.random.randn(N)),z=(40*np.random.randn(N)),opacity=0.5, # 设置透明度color='rgba(244,22,100,0.6)')])
# 坐标轴设置
fig.update_layout(scene = dict(xaxis = dict(nticks=4, range=[-100,100],),yaxis = dict(nticks=4, range=[-50,100],), # 标记4个标签值zaxis = dict(nticks=4, range=[-100,100],),),width=700,margin=dict(r=20, l=10, b=10, t=10))fig.show()

二、3D椭球体

看起来像球体

import plotly.graph_objects as go
import numpy as np
np.random.seed(1)u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)fig = go.Figure(data=[go.Scatter3d(x=list(1 * np.outer(np.cos(u), np.sin(v)).flatten()),y=list(1 * np.outer(np.sin(u), np.sin(v)).flatten()),z=list(1 * np.outer(np.ones(np.size(u)), np.cos(v)).flatten()),mode='markers'
)])
# 添加注释
fig.update_layout(annotations=[dict(x=0.8,xref='paper',  #使用相对坐标y=0.98,yref='paper',text='星暖冷月',showarrow=False,  # 不显示箭头),
])
fig.show()

import plotly.graph_objects as go
import numpy as np
np.random.seed(1)u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)
fig = go.Figure(data=[go.Mesh3d(x=list(1 * np.outer(np.cos(u), np.sin(v)).flatten()),y=list(1 * np.outer(np.sin(u), np.sin(v)).flatten()),z=list(1 * np.outer(np.ones(np.size(u)), np.cos(v)).flatten()),opacity=0.5, # 设置透明度color='rgba(244,22,100,0.6)')])
# 坐标轴设置
fig.update_layout(width=700,margin=dict(r=20, l=10, b=10, t=10),)
fig.update_layout(annotations=[dict(x=0.8,xref='paper',  #使用相对坐标y=0.98,yref='paper',text='星暖冷月',showarrow=False,  # 不显示箭头),
])
fig.show()

三、 多子图的3D图

import plotly.graph_objects as go
from plotly.subplots import make_subplots
import numpy as npN = 50fig = make_subplots(rows=2, cols=2,specs=[[{'is_3d': True}, {'is_3d': True}],[{'is_3d': True}, {'is_3d': True}]],print_grid=False)
for i in [1,2]:for j in [1,2]:fig.append_trace(go.Mesh3d(x=(60*np.random.randn(N)),y=(25*np.random.randn(N)),z=(40*np.random.randn(N)),opacity=0.5,),row=i, col=j)fig.update_layout(width=700, margin=dict(r=10, l=10, b=10, t=10))
# fix the ratio in the top left subplot to be a cube
fig.update_layout(scene_aspectmode='cube')
# manually force the z-axis to appear twice as big as the other two
fig.update_layout(scene2_aspectmode='manual',scene2_aspectratio=dict(x=1, y=1, z=2))
# draw axes in proportion to the proportion of their ranges
fig.update_layout(scene3_aspectmode='data')
# automatically produce something that is well proportioned using 'data' as the default
fig.update_layout(scene4_aspectmode='auto')
fig.show()

四、给坐标轴命名

import plotly.graph_objects as go
import numpy as np# Define random surface
N = 50
fig = go.Figure()
fig.add_trace(go.Mesh3d(x=(60*np.random.randn(N)),y=(25*np.random.randn(N)),z=(40*np.random.randn(N)),opacity=0.5,color='yellow'))
fig.add_trace(go.Mesh3d(x=(70*np.random.randn(N)),y=(55*np.random.randn(N)),z=(30*np.random.randn(N)),opacity=0.5,color='pink'))fig.update_layout(scene = dict(xaxis_title='X AXIS TITLE',yaxis_title='Y AXIS TITLE',zaxis_title='Z AXIS TITLE'),width=700,margin=dict(r=20, b=10, l=10, t=10))fig.show()

五、坐标轴刻度设置

import plotly.graph_objects as go
import numpy as np# Define random surface
N = 50
fig = go.Figure(data=[go.Mesh3d(x=(60*np.random.randn(N)),y=(25*np.random.randn(N)),z=(40*np.random.randn(N)),opacity=0.5,color='rgba(100,22,200,0.5)')])# Different types of customized ticks
fig.update_layout(scene = dict(xaxis = dict(ticktext= ['TICKS','MESH','PLOTLY','PYTHON'],tickvals= [0,50,75,-50]),yaxis = dict(nticks=5, tickfont=dict(color='green',size=12,family='Old Standard TT, serif',),ticksuffix='#'),zaxis = dict(nticks=4, ticks='outside',tick0=0, tickwidth=4),),width=700,margin=dict(r=10, l=10, b=10, t=10))fig.show()

六、 背景和网格颜色

import plotly.graph_objects as go
import numpy as npN = 50
fig = go.Figure(data=[go.Mesh3d(x=(30*np.random.randn(N)),y=(25*np.random.randn(N)),z=(30*np.random.randn(N)),opacity=0.5,)])# xaxis.backgroundcolor is used to set background color
fig.update_layout(scene = dict(xaxis = dict(backgroundcolor="rgb(200, 200, 230)",gridcolor="white",showbackground=True,zerolinecolor="white",),yaxis = dict(backgroundcolor="rgb(230, 200,230)",gridcolor="white",showbackground=True,zerolinecolor="white"),zaxis = dict(backgroundcolor="rgb(230, 230,200)",gridcolor="white",showbackground=True,zerolinecolor="white",),),width=700,margin=dict(r=10, l=10,b=10, t=10))
fig.show()

七、禁用工具提示峰值

import plotly.graph_objects as go
import numpy as npN = 50
fig = go.Figure(data=[go.Mesh3d(x=(30*np.random.randn(N)),y=(25*np.random.randn(N)),z=(30*np.random.randn(N)),opacity=0.5,)])
fig.update_layout(scene=dict(xaxis_showspikes=False,yaxis_showspikes=False))
fig.show()

八、总结

在某个备战考研的下午,搞这些花里胡哨但喜欢的东西,心里却不曾有些愧疚感,还是一样,留着以后用。

三生有幸遇见你,纵然悲凉也是情。                                 ——沙柳

Plotly学习 3D三维轴的设置相关推荐

  1. 深度学习在三维点云上的应用(Deep Learning for 3D Point Clouds: A Survey)

    深度学习在三维点云上的应用 摘要 最近,点云由于在计算机视觉.自动驾驶和机器人技术等许多领域的广泛应用而受到越来越多的关注.深度学习作为一种主要的人工智能技术,已经成功地用于解决各种二维视觉问题.由于 ...

  2. 利用二维数据学习纹理三维网格生成(CVPR 2020)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨paopaoslam 来源丨泡泡机器人SLAM 标题:Leveraging 2D Data to ...

  3. 使用深度学习进行三维脑肿瘤分割

    使用深度学习进行三维脑肿瘤分割 平台: 根MATLAB官网案例改编 :https://ww2.mathworks.cn/help/deeplearning/ug/segment-3d-brain-tu ...

  4. 可视化神器Plotly绘制3D图

    公众号:尤而小屋 作者:Peter 编辑:Peter 大家好,我是Peter~ 本文中重点介绍的是如何利用plotly来绘制3D图形. 在3D图形中一般是包含3个轴的:x.y.z.在Plotly中绘图 ...

  5. 入门学习3D建模的必备知识,基础打的好,7天就能上手做模型!

    今年4月的全球数字游戏销售额达到了破纪录的105亿美元(约合人民币750亿),利润超过今年三月并比去年4月上涨了17%.疫情过后,游戏市场迎来了一次高潮,如果你喜欢3D游戏建模或看好这个行业坚持下去, ...

  6. 学习3D前需要了解的一些基础

    学习3D前需要了解的一些基础知识 方向 我使用的是three.js来实现3D,对于three的3D来说,橙色是X轴,绿色是Y轴,蓝色是Z轴,记住:左z右x朝上y,当我们确定方向的时候,我们脑中就很好的 ...

  7. 尝试开源3D三维免费软件OpenCASCADE OpenCASCADE-7.6.0

    尝试开源3D三维免费自由软件OpenCASCADE,基于MIT协议1-安装和配置 1. 从官网下载,需要注册用户信息.下载window安装包即可.最新版为OpenCASCADE-7.6.0-vc14. ...

  8. 新手小白怎么学习游戏建模,都需要学习什么三维软件?

    游戏建模都要到哪些软件? Maya,即Autodesk Maya是美国Autodesk公司出品的世界顶级的三维动画软件,应用对象 是专业的影视广告,角色动画,电影特技等.Maya功能完善 ,工作灵活, ...

  9. 基于深度学习的三维语义理解(分割)综述列表

    基于深度学习的三维语义理解(分割)综述列表 文章目录 基于深度学习的三维语义理解(分割)综述列表 前言 基于深度学习的三维语义理解(分割)综述列表 一. 从单一三维模型中进行深度学习 1.1基于点云的 ...

最新文章

  1. 1.1.2 标准化工作及相关组织
  2. 突然让我想起了以前的面试(转http://blog.163.com/lzy_1920116/blog/)
  3. 【做题记录】图论杂题
  4. M-JPEG、MPEG4、H.264都有何区别 依维安防论坛
  5. Golang实践录:测试框架
  6. oracle自动结束连接,如何在Oracle8x中实现自动断开后再连接?
  7. Android获取Java类名/文件名/方法名/行号
  8. Java实现DFA算法敏感词过滤
  9. Esri官网购买个人版ArcGIS Pro激活方法
  10. Java、JSP公文流转系统分析与实现
  11. 一个算法解决所有英文起名问题
  12. python alpha通道_Python Pillow v2.6.0 paletted PNG(256)如何添加Alpha通道?
  13. 【2021-07-21】钞汇标志是什么?对钞汇标志的理解
  14. Oracle集群(RAC)时间同步(ntp和CTSS)
  15. SpringMVC学习日记总结
  16. 2876: 吃货排排坐
  17. 【智能制造】机器人与智能制造
  18. Android LCD(三):LCD接口篇【转】
  19. 视频教程-SQL语句从入门到精通迅速提升篇视频课程(Oracle零基础版)-Oracle
  20. mysql 谓语提前,英语倒装句全倒装时什么时候要把did提前?这个老搞不清楚

热门文章

  1. siri快捷指令_如何使用siri快捷方式来记录警察的遭遇
  2. linux pcf8563开发文档,linux下的i2c与时钟芯片pcf8563通信
  3. 二分法求三次方根代码
  4. 易基因|3文一览:DNA甲基化及组学测序在斑马鱼中的科学研究成果
  5. php 正则车架号,正则判断工具类 - 我的开源中国 - OSCHINA - 中文开源技术交流社区...
  6. 小程序底部兼容iphoneX
  7. 唯品会关键字搜索商品API接口(item_search-按关键字搜索唯品会商品API接口),唯品会API接口
  8. 译文: C28x Compiler Error and Warning Messages
  9. 30行代码用python实现软件翻译
  10. MOSFET的基本知识