多张三维图共用一个colorbar

  • 一张三维图
  • 多张三维图

一张三维图

绘制一张三维图,大概步骤是:导入相关库;生成三维图框,对X,Y数据进行统一网格化,绘制图形,添加colorbar,设置图形其他参数(如坐标轴,刻度范围,图形像素及大小),显示图形。

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm
import matplotlib
import numpy as np
import math
#下面这里是我的图形的X,Y,Z数据,可以根据自己的数据进行修改
LL_C = np.load('data_It_C_xi_E=0.8.npz')
LL_C = LL_C['arr_0']
C_L=LL_C[0]
C_L_one0=np.array(C_L[0])#注意C是二维数组
dt=5E-4
dx=1E-7
D_CO=1E-11
tmax=50
L=math.sqrt(2*D_CO*tmax)
X = np.arange(0,(100001)*dt,dt)
Y=np.arange(0,(316.5)*dx/L,dx/L)
#建立三维画板
ax = plt.figure().add_subplot(projection='3d')
#将x,y数据进行网格化
X, Y = np.meshgrid(X, Y)
# Plot the 3D surface
fig1=ax.plot_surface(X, Y, C_L_one0,cmap="rainbow")
#绘制colorbar
plt.colorbar(fig1, fraction=0.1, pad=0.15, shrink=0.9, anchor=(0.0, 0.3))
#图形其他设置
#使图片背景为白色
ax.w_xaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
ax.w_yaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
ax.w_zaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
#调整角度,设置各轴范围
ax.view_init(25, -70)
ax.set_zlim(0,1)
ax.set_xlim(0,50)
ax.set_ylim(0,1)
#设置各轴坐标
font3 = {'family' : 'Arial','weight' : 'normal','size'   : 14,}
ax.set_xlabel('$\t{t}$(s)',font3)
ax.set_ylabel('$\t{x/L}$',font3)
ax.set_zlabel('$\t{C}$(mol m$^{-3}$)',font3)
#设置图片像素大小
plt.rcParams['figure.figsize']=(6.0,4.0)
plt.rcParams['savefig.dpi'] = 200 #图片像素
plt.rcParams['figure.dpi'] = 200 #分辨率
#图形显示
plt.show()

多张三维图

#多张三维图共用一个colorbar
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm
import matplotlib
import numpy as np
import math
#下面这里是我的图形的X,Y,Z数据,可以根据自己的数据进行修改
LL_C = np.load('data_It_C_xi_E=0.8.npz')
LL_C = LL_C['arr_0']
C_L=LL_C[0]
dt=5E-4
dx=1E-7
D_CO=1E-11
tmax=50
L=math.sqrt(2*D_CO*tmax)
X = np.arange(0,(100001)*dt,dt)
Y=np.arange(0,(316.5)*dx/L,dx/L)
#在一幅三维图形上显示多组数据
C_L_one0=np.array(C_L[0])#注意C是二维数组
C_L_one1=np.array(C_L[3])
C_L_one2=np.array(C_L[4])
#建立三维画板
ax = plt.figure().add_subplot(projection='3d')
#将x,y数据进行网格化
X, Y = np.meshgrid(X, Y)
#将颜色映射到 vmin~vmax 之间
norm = matplotlib.colors.Normalize(vmin=0, vmax=1)
# Plot the 3D surface
fig1=ax.plot_surface(X, Y, C_L_one0,cmap="rainbow",norm = norm)
fig2=ax.plot_surface(X, Y, C_L_one1,cmap="rainbow",norm = norm)
fig3=ax.plot_surface(X, Y, C_L_one2,cmap="rainbow",norm = norm)
#绘制colorbar。因为已对颜色的映射范围进行设置,这里选择只显示其中一张图的colorbar
plt.colorbar(fig3, fraction=0.1, pad=0.15, shrink=0.9, anchor=(0.0, 0.3))
#图形其他设置
#使图片背景为白色
ax.w_xaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
ax.w_yaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
ax.w_zaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
#调整角度,设置各轴范围
ax.view_init(25, -70)
ax.set_zlim(0,1)
ax.set_xlim(0,50)
ax.set_ylim(0,1)
#设置各轴坐标
#font3 = {'family' : 'Arial',
#    'weight' : 'normal',
#    'size'   : 14,
#    }
#ax.set_xlabel('$\t{t}$(s)',font3)
#ax.set_ylabel('$\t{x/L}$',font3)
#ax.set_zlabel('$\t{C}$(mol m$^{-3}$)',font3)
#设置图片像素大小
plt.rcParams['figure.figsize']=(6.0,4.0)
plt.rcParams['savefig.dpi'] = 200 #图片像素
plt.rcParams['figure.dpi'] = 200 #分辨率
plt.show()

【python学习】-多张三维图共用一个colorbar(matplotlib绘制)相关推荐

  1. MATLAB 矩阵数据可视化imagesc 以及 如何多图共用一个 colorbar

    当遇到需要查看一个二维矩阵数据中值的大小分布情况时可以使用 MATLAB 把矩阵以图像的形式展现出来,这样更直观.MATLAB 的可视化函数之一是 imagesc( ),还有其他的方法,这里只介绍下 ...

  2. matlab两个图共用一个x轴_SCI论文写作MATLAB出图(2)

    接着SCI论文写作MATLAB出图(1)(以下介绍均由出图(1)代替),现在来讲第二部分,曾经也在出图这块走了不少弯路,现在呢,对出图这部分有一些心得,对有需求的同学略尽微薄之力吧.另外,提一嘴,当时 ...

  3. python使用Axes3D画三维图加入legend图例时报错AttributeError: ‘Poly3DCollection‘ object has no attribute ‘_edgecolo

    Q:python使用Axes3D画三维图加入legend图例时报错AttributeError: 'Poly3DCollection' object has no attribute '_edgeco ...

  4. matlab对于polygon.shp共用一个colorbar

    [提醒]当图形比较多时,为了方便比较,需要共用一个colorbar.但如果不统一设置colorbar的上下界限,可能显示了共用,但实际"共用"的只是最后一个图的colorbar而已 ...

  5. Python 的练手项目:用Python创建一张三维立体画

    本项目生成的三维立体画设计为用"墙眼"方式观看.看到它们的最好方法,就是让眼睛聚焦在图像后面的点(如墙上).有点神奇,一旦在这些图案中感知到某样东西,眼睛就会自动将它作为关注的焦点 ...

  6. Matlab多张二维图堆叠成一张三维图

    我想让500张1024*500的二维图堆叠成一张1024*500*500的三维图. 在网上找了好几天,不是运行不了,就是跟我想要的结果不一样. 所以我就自己编写了一个matlab代码 %% 二维图堆叠 ...

  7. 【python学习】自定义三维向量类 加减乘除查看值和长度

    <中学生可以这样学Python>P166 自定义三维向量类 ##自定义三维向量类 class Vector3:#构造方法,初始化,定义向量坐标def __init__(self,x,y,z ...

  8. python中,设置三维图图形显示区银灰色背景为白色,或者是其他颜色

    import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt from mpl_toolkits.mplot3 ...

  9. python学习路线-思维导图

    文章目录 1. python学习大纲 2. python基础大纲 2.1 python语言基础 2.2 标准数据类型1 2.3 标准类型补充 2.4 标准数据类型2 2.5 标准数据类型3 2.6 条 ...

最新文章

  1. PriorityBlockingQueue详解
  2. java 取数组的前90位,LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面
  3. 任务计划程序-Windows2008定时重启
  4. 【LeetCode从零单排】No21.MergeTwoSortedLists
  5. 分布式计算的模式语言读后感--基线架构
  6. Playground
  7. AUTOSAR从入门到精通100讲(二十二)-手把手教你写Demo系列之车道线检测
  8. mysql 递归查找父节点_MYSQL递归查询所有父节点
  9. 在线式极限学习机OS-ELM
  10. 让每个人都插上音乐的翅膀
  11. Clonezilla笔记----安装Clonezilla Live到U盘
  12. 打开Windows系统某设置的方法有哪些?
  13. 如何放慢selenium的运行速度
  14. 十年Java经验让我总结出了这些,什么是真正的架构设计?
  15. 微信支付、公众号支付、微信APP支付教程
  16. Uncaught SyntaxError: Not available in legacy mode
  17. 错误程序致广大证券被罚5.2亿
  18. tomat startup.bat 日志乱码问题解决
  19. 【源码】心率变异性分析的ECG类
  20. Oracle存储过程详细教程

热门文章

  1. 计算机四级手机破解,计算机四级题库
  2. 计算机英语教学设计反思,英语教学设计及反思【集锦】
  3. [Professor麦]Netty学习笔记(1)-谈谈netty的使用
  4. AWS证书运用示例 ssl https
  5. javascript功能插件大集合,写前端的亲们记得收藏
  6. 男性一天尿几次算正常
  7. 【程序员英语】必知必会,大学生研究生,工作人士赚外汇必备
  8. 宽带接入与无线网络(学习笔记一)——VLAN原理
  9. intro Java
  10. 阿里云服务器上用docker部署jenkins