如何解决选择相同的色标范数以使两个图形与结构可比
我想对两个图形使用相同的颜色条,但是它们的颜色范围不会重叠,例如左面板颜色范围[0:2],右面板[5:7]。有什么方法可以选择一些特定的规范或颜色条范围以使其具有可比性?
您可以使用任何数字,在此附上一个代码示例。
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.colors as colors
cmin = 1
cmax = 10
print('initializing domain')
NY = 100
ymin = -800.
ymax = 800.
dy = (ymax -ymin )/(NY-1.)
Ly = ymax-ymin
NX = NY
xmin = ymin
xmax = ymax
dx = dy
Lx = Ly
y = np.array([ ymin + float(i)*dy for i in range(NY)])
x = np.array([ xmin + float(i)*dx for i in range(NX)])
#x,y = np.meshgrid( x,y,indexing = 'ij',sparse = False) # indexing = ij,matrix grid
x,y) # indexing = xy,Cartesian grid
print('initializing B field')
B0 = 1
k = 1
alpha = 2.0*np.pi*k/Lx
# parallel
Bx_p = B0*np.sin(alpha*y)
By_p = B0*np.cos(alpha*x)
Bz_p = B0*(np.sin(alpha*x)+np.cos(alpha*y))
# diagonal
Bx = B0*(np.sin(alpha*(x+y)) + np.sin(alpha*(x-y)))/np.sqrt(2.0)
By = B0*(np.sin(alpha*(x-y)) - np.sin(alpha*(x+y)))/np.sqrt(2.0)
Bz = B0*(np.cos(alpha*(x+y)) - np.cos(alpha*(x-y)))
Bp = np.sqrt(Bx_p**2+By_p**2+Bz_p**2)
B = np.sqrt(Bx**2+By**2+Bz**2)
print('plotting')
rows = 1
cols = 2
#plt.clf()
plt.figure(figsize=(cols*4.5,rows*4.5+0.2))
plt.minorticks_on()
plt.subplot(rows,cols,1,aspect='equal')
plt.title('color range [%g:%g],\n chosen colorbar [%g:%g]'%(B.min(),round(B.max()),cmin,cmax))
#im = ax0.pcolormesh(x,z,cmap=plt.get_cmap('PiYG'),vmin=cmin,vmax=cmax)
im = plt.pcolormesh(x,B,norm=colors.LogNorm(vmin=cmin,vmax=cmax))
plt.colorbar(im)
B=B+5
plt.subplot(rows,2,vmax=cmax))
plt.colorbar(im)
plt.tight_layout()
plt.savefig('test.png',format='png')
plt.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。