简介

Plotly 是一个非常强大的开源数据可视化框架,它通过构建基于 HTML 的交互式图表来显示信息,可创建各种形式的精美图表。本文所说的 Plotly 指的是 Plotly.js 的 Python 封装,plotly本身是个生态非常复杂的绘图工具,它对很多编程语言提供接口。交互式和美观易用应该是 Plotly 最大的优势,而 Matplotlib 的特点则是可定制化程度高,但语法也相对难学,各有优缺点。

安装及开发工具

安装通过 PIP 进行即可。

pip install plotly

Plotly Python 其对应的官网为Plotly Python Graphing Library,上面有一些教程和官方API接口的查询。

三维动态绘图

Plotly二大优势:1、自带交互式按钮,可用鼠标点击,拖动十分便捷。但需要注意若没有显卡驱动可能无法打开文件,如图中所示错误,此时需要安装更新显卡驱动,如图所示。

2、可以生成html文件,便于在各个电脑使用。

plotly绘制三维图需调用go.Scatter3d函数

#以下代码绘制静态图
data = []
trace = go.Scatter3d(x=, y=, z=, mode="lines", line=dict(color='orange'),name='XXX' + str(i + 1), opacity=0.7)
data.extend([trace])

x y z分别为对应坐标,mode为类型包括线性lines 散点型markers等等,需要根据具体情况具体使用,name为名称,opacity为透明度范围0~1。

#以下代码为绘制动态图
frames = []
for i in range(m):trace = go.Scatter3d(x=, y=, z=, mode="lines",             line=dict(color='orange'),name='', opacity=0.8)data.insert(0, trace)  ###这里用来补充线,否则绘制动图时,会消失for k in range(Page):a = []a = [go.Surface(x=, y=, z=, showscale=False, colorscale=colorscale2[k], opacity=0.5,name='填充区域',surfacecolor=SurfaceColor2[k])]   ###这里frame = [go.Frame(data=a, name=str(k))]frames.extend(frame)

这里为在静态图基础上绘制动态区域,需要对frams进行数据补充。

#生成图像所需数据
fig = go.Figure(data=data, frames=frames)
#滑块配置
steps = []
for k, f in enumerate(fig.frames):# print(str(k), f.name)step = dict(method="animate",label=str(atime[k]),args=[[f.name], frame_args(20)],)steps.append(step)
​
sliders = [dict(active=0,  # 默认值currentvalue={"prefix": "时间/μs:"},  # 滑动条显示的名称;pad={"b": 20, "t": 10},  # 调节滑动条的位置,单位像素;steps=steps
)]
#图层配置
fig.update_layout(# title='Slices in volumetric data',#          width=1200,#          height=1200,#          scene=dict(#                     zaxis=dict(range=[0, 1200], autorange=False),#                     aspectratio=dict(x=1, y=1, z=1),#                     ),hovermode="closest",updatemenus=[{"buttons": [{"args": [None, frame_args(-1.5)],"label": "▶",  # play symbol"method": "animate",},# {#     "args": [[None], frame_args(0)],#     "label": "◼",  # pause symbol#     "method": "animate",# },],"direction": "left","pad": {"r": 10, "t": 60},"type": "buttons","x": 0,"xanchor": "right","y": 0,"yanchor": "top",}],showlegend=True, #是否显示标注sliders=sliders,#滑块初始化scene=dict(camera=dict(eye=dict(x=POIN1Z[0], y=POIN1Z[1], z=POIN1Z[2]),up=dict(x=1,y=0,z=0)))#eye视角配置 up选择哪个坐标轴朝上)
picture = py.plot(fig,filename='XXX.html',auto_open=False)

showlegend=True, #是否显示标注,

filename生成的html文件名;

auto_open是否自动打开文件。

plotly绘制3D图技巧相关推荐

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

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

  2. R语言使用plotly绘制3D散点图实战

    R语言使用plotly绘制3D散点图实战 目录 R语言使用plotly绘制3D散点图实战 #仿真数据 #plotly绘制3D散点图 #仿真数据 set.seed(41

  3. Plotly绘制时间序列图实战:简单时序图、时间范围限制的时序图

    Plotly绘制时间序列图实战:简单时序图.时间范围限制的时序图 # 简单时间序列图: import plotly as py import plotly.graph_objs as gofrom d ...

  4. python绘制三维曲面图-python中Matplotlib实现绘制3D图的示例代码

    Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...

  5. python绘制3d图-Python绘制3D图形

    3D图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行3D图形的绘制,包括3D散点.3D表面.3D轮廓.3D直线(曲线)以及3D文字等的绘制 ...

  6. python绘制3d图-python中Matplotlib实现绘制3D图的示例代码

    Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...

  7. Matplotlib绘制3D图(面向对象)

    import numpy as np import matplotlib.pyplot as plt# 第一步:创建 3D图像 对象ax fig = plt.figure(figsize=(12, 6 ...

  8. python3d动图_python中Matplotlib实现绘制3D图的示例代码

    Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...

  9. 【Python】(2022.07.03)在Jupyter Notebook中调用Stata17并绘制3D图展示回归结果的边际效应

    文章目录 背景介绍: 实现结果 安装过程 安装stata_setup包 检查是否安装成功 常见问题 调用stata 常见问题 1. stata安装在哪 2. 返回报错:TypeError: init( ...

最新文章

  1. SemSegMap :基于3D点云语义信息的定位
  2. boost的字符串处理函数——format
  3. C语言合理字符的代码,改善C语言程序代码的125个建议,第62到89个建议!
  4. 嵌入式linux硬件成本,嵌入式Linux驱动和固件有何区别?供应商是如何用固件压缩成本的?...
  5. Servlet程序入门
  6. SAP UI5 应用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到正常的应用页面
  7. vue项目中按需引入viewUI
  8. 初识ABP vNext(4):vue用户登录菜单权限
  9. android 5.0状态栏下载地址,Android沉浸式状态栏(5.0以上系统)
  10. 代码没写完,哪里有脸睡觉!17 张程序员壁纸推荐
  11. linux常用命令-第一篇
  12. 关于引力波的一些疑问
  13. 2022年全国大学生电子设计大赛省赛A题
  14. 【数据结构】班级管理系统
  15. C语言表上作业法运输问题,表上作业法解运输问题
  16. Cadence 17.4 等长布线
  17. 企业集团合并财务报表
  18. Mac应用程序、软件、工具仓库
  19. 2008 r2安装总是跳出 server sql_Microsoft SQL Server 2008 R2 安装遇到的问题
  20. 大数据 银行业应用案例_银行业市场分析大数据项目

热门文章

  1. html圆形波浪流量统计,HTML-波浪水球
  2. Line营销机器人2019版
  3. 遮挡目标检测持续汇总
  4. RFID固定资产管理系统更好更快捷的掌握资产情况 资产盘查好帮手
  5. Android 对一个View进行缩放处理(放大或缩小View)案例
  6. 那些免费低价云主机真的可以永久使用吗?别再被套路了 盐谷君 上海盐谷 今天
  7. 解决Adobe Arcobat Reader DC打开PDF提示:正在准备文档以供阅读,请稍后
  8. 999瓶水一瓶毒药,10只小鼠,使用python暴力编程
  9. 显示商品分类列表页面
  10. 知乎百万热议:为什么涨薪也只能靠跳槽?老板都宁愿高薪聘请外人也不愿加薪?