下面代码来自:Python plot_surface(Axes3D)方法:绘制3D图形
# -*- coding: utf-8 -*-
"""
Created on Mon Oct7 21:57:52 2019@author: qwy
"""import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(12, 8))
ax = Axes3D(fig)
'''
fig = plt.figure(figsize=(12, 8))
ax = fig.gca(projection='3d')
'''delta = 0.125
# 生成代表X轴数据的列表
x = np.arange(-3.0, 3.0, delta)
# 生成代表Y轴数据的列表
y = np.arange(-2.0, 2.0, delta)
# 对x、y数据执行网格化
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
# 计算Z轴数据(高度数据)
Z = (Z1 - Z2) * 2
# 绘制3D图形
surf = ax.plot_surface(X, Y, Z,
rstride=1,# rstride(row)指定行的跨度
cstride=1,# cstride(column)指定列的跨度
cmap=plt.get_cmap('rainbow'))# 设置颜色映射
# 设置Z轴范围
ax.set_zlim(-2, 2)
# 设置标题
plt.title("3D图")
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
文章图片
- 3D 图形需要的数据与等高线图基本相同:X、Y 数据决定坐标点,Z 轴数据决定 X、Y 坐标点对应的高度。与等高线图使用等高线来代表高度不同,3D 图形将会以更直观的形式来表示高度。
- 为了绘制 3D 图形,需要调用 Axes3D 对象的
plot_surface()
方法来完成。
- 关于plot_surface参数,如下:
参数 | 描述 |
---|---|
X,Y,Z | 2D数组形式的数据值 |
rstride | 数组行距(步长大小) |
cstride | 数组列距(步长大小) |
color | 曲面块颜色 |
cmap | 曲面块颜色映射 |
facecolors | 单独曲面块表面颜色 |
norm | 将值映射为颜色的 Nonnalize实例 |
vmin | 映射的最小值 |
vmax | 映射的最大值 |
下面代码来自:python金融大数据分析笔记----第五章(数据可视化)3 —【金融学图表】
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']='Lisu'
plt.rcParams['axes.unicode_minus']=Falsestrike = np.linspace(50, 150, 24)
ttm = np.linspace(0.5, 2.5, 24)
strike, ttm = np.meshgrid(strike, ttm)
iv = (strike - 100) ** 2 / (100 * strike) / ttm
# generate fake implied volatilitiesfig = plt.figure(figsize=(9, 6))
ax = fig.gca(projection='3d')'''同上面两行代码
fig = plt.figure(figsize=(12, 8))
ax = Axes3D(fig)
'''surf = ax.plot_surface(strike, ttm, iv, rstride=2,
cstride=2, cmap=plt.cm.coolwarm,
linewidth=0.5, antialiased=True)
ax.set_xlabel('strike')
ax.set_ylabel('time-to-maturity')
ax.set_zlabel('implied volatility')
fig.colorbar(surf, shrink=0.5, aspect=5)
【#|3D绘图&ax.plot_surface()】
文章图片
- 另外,关于Matplotlib.pyplot 三维绘图,可点击此处
推荐阅读
- 数据结构和算法|LeetCode 的正确使用方式
- #|7.分布式事务管理
- #|算法设计与分析(Java实现)——贪心算法(集合覆盖案例)
- #|算法设计与分析(Java实现)—— 动态规划 (0-1 背包问题)
- #|阿尔法点亮LED灯(一)汇编语言
- #|Multimedia
- #|ARM裸机开发(汇编LED灯实验(I.MX6UL芯片))
- 基础课|使用深度优先搜索(DFS)、广度优先搜索(BFS)、A* 搜索算法求解 (n^2 -1) 数码难题,耗时与内存占用(时空复杂度)对比(附((n^2 - 1) 数码问题控
- #|学习笔记 | Ch05 Pandas数据清洗 —— 缺失值、重复值、异常值
- win10|搏一搏 单车变摩托,是时候捣鼓一下家中的小米电视机啦。