use*_*845 37 python matplotlib colorbar
我使用matplotlib在python中绘制一些数据,并且图表需要标准颜色条.数据由一系列包含频率信息的NxM矩阵组成,因此简单的imshow()图给出了描述频率的颜色的2D直方图.每个矩阵包含不同但重叠范围的数据.Imshow将每个矩阵中的数据归一化到0-1范围,这意味着,例如,矩阵A的图将看起来与矩阵2*A的图相同(尽管颜色条将显示两倍的值).我想要的是红色,例如,对应于所有图中的相同频率.换句话说,单个彩条就足以满足所有情节.任何建议将不胜感激.
Joe*_*ton 73
不要偷@ ianilis的答案,但我想补充一个例子......
有多种方法,但最简单的方法是指定vmin
和vmax
kwargs imshow
.或者,您可以创建一个matplotlib.cm.Colormap
实例并指定它,但这比简单的情况更复杂.
以下是所有图像的单一颜色条的快速示例:
import numpy as np
import matplotlib.pyplot as plt
# Generate some data that where each slice has a different range
# (The overall range is from 0 to 2)
data = np.random.random((4,10,10))
data *= np.array([0.5, 1.0, 1.5, 2.0])[:,None,None]
# Plot each slice as an independent subplot
fig, axes = plt.subplots(nrows=2, ncols=2)
for dat, ax in zip(data, axes.flat):
# The vmin and vmax arguments specify the color limits
im = ax.imshow(dat, vmin=0, vmax=2)
# Make an axis for the colorbar on the right side
cax = fig.add_axes([0.9, 0.1, 0.03, 0.8])
fig.colorbar(im, cax=cax)
plt.show()
Run Code Online (Sandbox Code Playgroud)
最简单的解决方案是使用每个绘图的相同参数调用clim(lower_limit,upper_limit).
归档时间: |
|
查看次数: |
44689 次 |
最近记录: |