广告区

广告区


本站消息

站长简介/公众号

关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2021-07(3)

2021-08(6)

matplotlib绘制3D图小例子

发布于2020-03-10 20:26     阅读(1246)     评论(0)     点赞(14)     收藏(1)



这里我们用到matplotlib、numpy和Axes3D库

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

点线图:

print("点线图")
fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(0,20,0.25)
Y = np.arange(0,20,0.25)
Z = np.sin(X+Y)
ax.plot(X,Y,Z,color='red',linestyle="--")
plt.show()

点线图散点图:

print("散点图")
fig = plt.figure()
ax = Axes3D(fig)
for c,m,zlow,zhigh in [("r","o",0,8),("b","^",7,15)]:
    x = np.random.uniform(0,10,100)
    y = np.random.uniform(0,10,100)
    z = np.random.uniform(zlow,zhigh,100)
    ax.scatter(x,y,z,color=c,marker=m)
plt.show()

散点图表面图:

print("表面图")
fig = plt.figure()
ax = Axes3D(fig)

arr1 = np.array([1,2,3])
arr2 = np.array([4,5])
np.meshgrid(arr1,arr2)  #(1,5) (2,5) (3,5) (1.4) (2.4) (3,4)
print(np.meshgrid(arr1,arr2))

x = np.arange(-5,5,0.25)
y = np.arange(-5,5,0.25)
x,y = np.meshgrid(x,y)
r = np.sqrt(x**2+y**2)
z = np.sin(r)
ax.plot_surface(x,y,z,rstride=5,cstride=5,cmap="rainbow") #cmap是颜色
plt.show()

表面图将一个2D图变成3D:

print("2D图画在3D图上")
fig = plt.figure()
ax = Axes3D(fig)

x = np.arange(0,20,0.5)
y = np.sin(x)
# !!!! plt.画图函数(二维),ax.画图函数(三维)
plt.plot(x,y)
plt.show()

ax.plot(x,y,zs=0,zdir="y",color="orange")  #zdir:把某个轴的值变成z轴
plt.show()

for c,z in zip(["r","y","b","g"],[30,20,10,0]):
    ax.plot(x,y,zs = z,zdir="y" ,color=c)
plt.show()

在这里插入图片描述

print("柱状图2D转3D")
fig = plt.figure()
ax = Axes3D(fig)
x = np.arange(0,7)
y = np.random.uniform(2,20,7)
for c,z in zip(["r","y","b","g"],[30,20,10,0]):
    ax.bar(x,y,z,zdir="y",color=c,alpha=0.8)
plt.xlabel("X")
plt.ylabel("Y")
ax.set_zlabel("Z")
plt.show()

在这里插入图片描述用matplotlib画动态图:

print("用matplotlib画动态图")
plt.ion()
plt.show()
x = np.random.uniform(0,10,100)
y = np.random.uniform(0,10,100)
for c in ["r","y","b","g"]:
    plt.scatter(x,y,color=c)
    plt.pause(1)  #表示时间间隔,单位是秒
plt.ioff()
plt.show()

在这里插入图片描述友情链接:http://dublogger.cn/

原文链接:https://blog.csdn.net/weixin_44189343/article/details/104746421







所属网站分类: 技术文章 > 博客

作者:我Lovepython

链接:https://www.pythonheidong.com/blog/article/251504/525f6caab8a14782c27e/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

14 0
收藏该文
已收藏

评论内容:(最多支持255个字符)