Python mpl_toolkits画3D图

# 具体函数方法可用 help(function) 查看,如:help(ax.plot_surface) 画面
    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')
  # 画三维散点图 画点
        ax.scatter(x, y, z, s=scale, c=color, marker=".")


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 18/2/26 下午12:52
# @Author  : cicada@hole
# @File    : visual.py
# @Desc    :



import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# import mpl_toolkits.mplot3d.axes3d
from mpl_toolkits.mplot3d import Axes3D

# 解决中文乱码问题
myfont = fm.FontProperties(fname="/Library/Fonts/Songti.ttc", size=14)
matplotlib.rcParams["axes.unicode_minus"] = False


def simple_plot():
    """
    simple plot
    """
    # 生成画布
    plt.figure(figsize=(8, 6), dpi=80)

    # 打开交互模式
    plt.ion()

    # 循环
    for index in range(100):
        # 清除原有图像
        plt.cla()

        # 设定标题等
        plt.title("动态曲线图", fontproperties=myfont)
        plt.grid(True)

        # 生成测试数据
        x = np.linspace(-np.pi + 0.1*index, np.pi+0.1*index, 256, endpoint=True)
        y_cos, y_sin = np.cos(x), np.sin(x)

        # 设置X轴
        plt.xlabel("X轴", fontproperties=myfont)
        plt.xlim(-4 + 0.1*index, 4 + 0.1*index)
        plt.xticks(np.linspace(-4 + 0.1*index, 4+0.1*index, 9, endpoint=True))

        # 设置Y轴
        plt.ylabel("Y轴", fontproperties=myfont)
        plt.ylim(-1.0, 1.0)
        plt.yticks(np.linspace(-1, 1, 9, endpoint=True))

        # 画两条曲线
        plt.plot(x, y_cos, "b--", linewidth=2.0, label="cos示例")
        plt.plot(x, y_sin, "g-", linewidth=2.0, label="sin示例")

        # 设置图例位置,loc可以为[upper, lower, left, right, center]
        plt.legend(loc="upper left", prop=myfont, shadow=True)

        # 暂停
        plt.pause(0.1)

    # 关闭交互模式
    plt.ioff()

    # 图形显示
    plt.show()
    return
# simple_plot()


def scatter_plot():
    """
    scatter plot
    """
    # 打开交互模式
    plt.ion()

    # 循环
    for index in range(50):
        # 清除原有图像
        # plt.cla()

        # 设定标题等
        plt.title("动态散点图", fontproperties=myfont)
        plt.grid(True)

        # 生成测试数据
        point_count = 5
        x_index = np.random.random(point_count)
        y_index = np.random.random(point_count)

        # 设置相关参数
        color_list = np.random.random(point_count)
        scale_list = np.random.random(point_count) * 100

        # 画散点图
        plt.scatter(x_index, y_index, s=scale_list, c=color_list, marker="o")

        # 暂停
        plt.pause(0.2)

    # 关闭交互模式
    plt.ioff()

    # 显示图形
    plt.show()
    return
# scatter_plot()


def three_dimension_scatter():
    """
    3d scatter plot
    """
    # 生成画布
    fig = plt.figure()

    # 打开交互模式
    plt.ion()

    # 循环
    for index in range(50):
        # 清除原有图像
        fig.clf()

        # 设定标题等
        fig.suptitle("三维动态散点图", fontproperties=myfont)

        # 生成测试数据
        point_count = 100
        x = np.random.random(point_count)
        y = np.random.random(point_count)
        z = np.random.random(point_count)
        color = np.random.random(point_count)
        scale = np.random.random(point_count) * 100

        # 生成画布
        ax = fig.add_subplot(111, projection="3d")

        # 画三维散点图 画点
        ax.scatter(x, y, z, s=scale, c=color, marker=".")

        # 设置坐标轴图标
        ax.set_xlabel("X Label")
        ax.set_ylabel("Y Label")
        ax.set_zlabel("Z Label")

        # 设置坐标轴范围
        ax.set_xlim(0, 1)
        ax.set_ylim(0, 1)
        ax.set_zlim(0, 1)

        # 暂停
        plt.pause(0.2)

    # 关闭交互模式
    plt.ioff()

    # 图形显示
    plt.show()
    return
# three_dimension_scatter()

#3D曲面图
def three_dimension_surface():
    fig = plt.figure()
    ax = Axes3D(fig)
    X = np.arange(-4, 4, 0.25)
    Y = np.arange(-4, 4, 0.25)
    X, Y = np.meshgrid(X, Y)
    R = np.sqrt(X ** 2 + Y ** 2)
    Z = np.sin(R)

    # 具体函数方法可用 help(function) 查看,如:help(ax.plot_surface) 画面
    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')

    plt.show()

if __name__ == '__main__':
    three_dimension_surface()


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 要使用Anaconda安装mpl_toolkits.mplot3d,您可以按照以下步骤进行操作: 1. 打开Anaconda Navigator,并在“环境”选项卡中选择要安装mpl_toolkits.mplot3d的环境。 2. 在所选环境下,单击“安装”按钮。 3. 在搜索框中输入“mpl_toolkits.mplot3d”,然后在列表中选择它。 4. 单击“应用”按钮开始安装。 5. 等待安装完成后,您可以在所选环境中打开Jupyter Notebook或任何其他Python IDE,并导入mpl_toolkits.mplot3d包以使用3D功能。 希望这能对您有所帮助! ### 回答2: 使用Anaconda安装mpl_toolkits.mplot3d非常简单。mpl_toolkits.mplot3d是matplotlib库的扩展包,提供了用于绘制3D形的功能。 以下是使用Anaconda进行安装的步骤: 1. 打开Anaconda Navigator。可以在开始菜单或桌面上找到Anaconda Navigator的标并单击打开。 2. 在Anaconda Navigator的主界面上,选择左侧菜单栏中的“Environments”(环境)选项。 3. 在Environments界面中,确保右上方的“base (root)”环境被选中。 4. 在右侧的搜索栏中输入“matplotlib”关键字,然后按Enter键进行搜索。找到“matplotlib”包后,在其右侧勾选框中单击安装按钮。 5. 安装完成后,返回左侧菜单栏,选择“Home”(主页)选项。 6. 在首页界面,在“Applications on”(应用程序)下拉菜单中选择“base (root)”环境。 7. 在右侧的搜索栏中输入“Cmd.exe”或“Anaconda Prompt”关键字,然后按Enter键打开命令行界面。 8. 在命令行界面中,输入以下命令并按Enter键执行: ```conda install -c anaconda mpl_toolkits``` 这个命令将从Anaconda官方渠道安装mpl_toolkits包。 9. 完成后,关闭命令行界面。 现在,你已经成功使用Anaconda安装了mpl_toolkits.mplot3d。你可以在Python脚本中导入mpl_toolkits.mplot3d,然后使用其中提供的类和函数来创建和操作3D形。祝你使用mpl_toolkits.mplot3d创建出精彩的3D形! ### 回答3: 使用Anaconda安装mpl_toolkits.mplot3d非常简单。Anaconda是一个Python和数据科学的综合开发环境,集成了一系列常用的数据科学库和工具。 下面是如何使用Anaconda安装mpl_toolkits.mplot3d的步骤: 1. 首先,确保你已经成功安装了Anaconda。如果还没有安装Anaconda,可以去Anaconda官网(https://www.anaconda.com/)下载适合你操作系统的版本,并按照官方的安装指南进行安装。 2. 打开Anaconda Navigator。Anaconda Navigator是Anaconda的可视化形用户界面,提供了一个方便的方式来管理和使用Anaconda环境和软件包。 3. 在Anaconda Navigator的主界面中选择“Environments”(环境)。这里可以查看你已经存在的环境(默认为“base”环境)。 4. 点击“base (root)”,然后选择“Open Terminal”(打开终端)。这会打开一个命令行终端,你可以在终端中使用conda命令。 5. 在终端中输入以下命令来激活“base”环境: ``` conda activate base ``` 6. 接下来,输入以下命令来安装mpl_toolkits.mplot3d包: ``` conda install -c conda-forge mpl_toolkits.mplot3d ``` 7. 安装完成后,可以在代码中引入mpl_toolkits.mplot3d并使用其功能了。例如: ``` import mpl_toolkits.mplot3d ``` 总之,使用Anaconda安装mpl_toolkits.mplot3d非常简单。只需要打开Anaconda Navigator,在命令行终端中使用conda命令安装mpl_toolkits.mplot3d,并在代码中引入该库即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值