Matplotlib实例教程(十七)3D山体图
Posted K同学啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matplotlib实例教程(十七)3D山体图相关的知识,希望对你有一定的参考价值。
前言
- 🔗 运行环境:python3
- 🚩 作者:K同学啊
- 🥇 精选专栏:《深度学习100例》
- 🔥 推荐专栏:《小白入门深度学习》
- 📚 选自专栏:《Matplotlib教程》
- 🧿 优秀专栏:《Python入门100题》
你可能需要安装的包
- statsmodels
- seaborn
安装命令(在cmd中输入该命令即可)
pip install seaborn
pip install statsmodels
如果你不知道如何打开命令行,请看这里:如何打开CMD命令行
代码实现
import pandas as pd
import numpy as np
import seaborn as sns
sns.set_style("white")
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
import warnings
warnings.filterwarnings("ignore")#忽略警告信息
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cbook
from matplotlib import cm
from matplotlib.colors import LightSource
# 生成数据
filename = cbook.get_sample_data('jacksboro_fault_dem.npz', asfileobj=False)
with np.load(filename) as dem:
z = dem['elevation']
nrows, ncols = z.shape
x = np.linspace(dem['xmin'], dem['xmax'], ncols)
y = np.linspace(dem['ymin'], dem['ymax'], nrows)
x, y = np.meshgrid(x, y)
region = np.s_[5:50, 5:50]
x, y, z = x[region], y[region], z[region]
fig, ax = plt.subplots(figsize=(6, 6),subplot_kw=dict(projection='3d'))
ls = LightSource(270, 45)
# 要使用自定义山坡模式,请覆盖内置着色并传递从“阴影”计算的阴影表面的RGB颜色。
rgb = ls.shade(z, cmap=cm.gist_earth, vert_exag=0.1, blend_mode='soft')
surf = ax.plot_surface(x, y, z, rstride=1, cstride=1, facecolors=rgb,
linewidth=0, antialiased=False, shade=False)
plt.title('3D山体图示例', fontsize=18)
plt.show()
以上是关于Matplotlib实例教程(十七)3D山体图的主要内容,如果未能解决你的问题,请参考以下文章