Matplotlib实例教程(十七)3D山体图

Posted K同学啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matplotlib实例教程(十七)3D山体图相关的知识,希望对你有一定的参考价值。

前言

你可能需要安装的包

  • 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()

👇🏻 扫一扫下方二维码,获取7900+本电子书👇🏻

以上是关于Matplotlib实例教程(十七)3D山体图的主要内容,如果未能解决你的问题,请参考以下文章

数据可视化实例(十七):包点图 (matplotlib,pandas)

Matplotlib实例教程(十五) 3D散点图

Matplotlib实例教程(十五) 3D散点图

Matplotlib实例教程(十六)3D直方图

Matplotlib实例教程(十六)3D直方图

Matplotlib实例教程:柱状图