使用matplotlib绘图,改变colorbar,  统一colorbar的显示范围,目的是观看两个图片的差别,首先原始代码

import matplotlib.pyplot as plt
import matplotlib
m = 5
plt.figure(figsize=(15,15))
plt.subplot(121)
plt.imshow(data['output'][m].squeeze(), cmap='jet')
plt.colorbar(shrink=0.5)
plt.title('output')
plt.subplot(122)
plt.imshow(data['label'][m].squeeze(), cmap='jet')
plt.colorbar(shrink=0.5)
plt.title('label')
plt.show()

得到的图片展示如下:

 由上图看到colorbar数值范围不一致,图片差异明显,肉眼直观较难比较

设置一致的colorbar,便于比较

import matplotlib.pyplot as plt
import matplotlib
m = 5
plt.figure(figsize=(15,15))
norm = matplotlib.colors.Normalize(vmin=0,vmax=0.8)  # 设置colorbar显示的最大最小值
plt.subplot(121)
plt.imshow(data['output'][m].squeeze(), cmap='jet',norm=norm)
plt.colorbar(shrink=0.5)
plt.title('output')
plt.subplot(122)
plt.imshow(data['label'][m].squeeze(), cmap='jet',norm=norm)
plt.colorbar(shrink=0.5)
plt.title('label')
plt.show()

出来的图如下:

 设vmin=0,vmax=3,出图如下

 统一colorbar显示范围,更好比较

Created on Sat Sep 5 18:05:11 2020 @author: 15025 draw three figures with one common colorbar import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import ImageGrid class Visualazation: cm1 = plt.cm.get_cmap('RdYlBu') cm2 = plt.cm.get_cmap('RdYlBu_r') # RdYlBu_r末尾加r表示颜色取反 x=np.random.randn(50) y=np.random.randn(50) plt.figure()
x = reshape(data1(:,1),1800,1320); y = reshape(data1(:,2),1800,1320); z = reshape(crust_h,1800,1320); [C,H] =contourf(x,y,z,100); % contourf(peaks(20),10); set(H,'LineColor','none'); colormap('jet'); h=colorbar; caxis([4 10]); %设置grid显示范围 set(h,'Ylim',[3.
简要谈谈常用的colorbar参数。第一个参数为colorbar传入参数,代表colorbar所关联的contourf/heatmap/cmap/scatter(下面皆以contourf举例),这种方式是最简单的默认传入,绘制出来的colorbar和cf是相匹配的,展示的也是cf的信息。 第二个参数为colorbar绘制的默认子图位置参数,代表当前这个colorbar将要摆放的子图位置。第三个为指定色条位置参数cax。第四个为使色条展示尖角的参数extend,他可以使色条展现出角的形状,其可选命令both表
matplotlib 合理设置colorbar子图的对应关系 文章目录matplotlib 合理设置colorbar子图的对应关系1. 介绍2 plt.contourf ()2.1 错误示范2.2 使用 norm实现颜色和数值之间的对应关系2.3 只显示最后一个的colorbar2.4 使用 levels 参数设置3. 使用plt.imshow()4 单独设置colorbar 1. 介绍
这里写目录标题导入matplotlib库figure(图像)图像构成生成窗口代码相关设置axis坐标轴子图axes、axis(轴)两种绘图风格面向对象风格pyplot风格绘制常见图形普通画图plot散点图scatter直方图bar形状常见线属性设置线属性的方法点类型 导入matplotlib库 import matplotlib.pyplot as plt import numpy as np #一般与numpy库配合使用 figure(图像) 生成窗口代码 fig = plt.figure(
画云图时,常因对比需要,不同图的colorbar色标相同,但是colorbar的刻度范围不同。也就是如何使不同的colorbar的相同颜色代表相同的数值?但是同时,每个colorbar显示的最大最小值又是不同的。即固定colorbar“坐标系”。 设定colorbar刻度范围[0 400] 图1中colorbar刻度的范围是[0 400],但颜色实际范围是[50,200] 即,图1的colo...
多张三维图共用一个colorbar一张三维图多张三维图 一张三维图 绘制一张三维图,大概步骤是:导入相关库;生成三维图框,对X,Y数据进行统一网格化,绘制图形,添加colorbar,设置图形其他参数(如坐标轴,刻度范围,图形像素及大小),显示图形。 from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt from matplotlib import cm import matplotlib import numpy as
如果你想在 Python 中绘制一个热力图,但只想显示一定范围内的值,你可以使用 `vmin` 和 `vmax` 参数来设置热力图的颜色范围。这两个参数分别表示热力图的最小值和最大值。所有小于 `vmin` 的值将被设置成同一个颜色,所有大于 `vmax` 的值也将被设置成同一个颜色。 例如,假设你有一个 10x10 的矩阵 `data`,你可以使用以下代码来绘制一个热力图,并只显示值在 0 到 1 之间的数据: import matplotlib.pyplot as plt import numpy as np # 生成一个 10x10 的随机矩阵 data = np.random.rand(10, 10) # 绘制热力图,并只显示值在 0 到 1 之间的数据 plt.imshow(data, cmap='hot', vmin=0, vmax=1) plt.colorbar() plt.show() 在这个例子中,我们使用了 `vmin=0` 和 `vmax=1` 来限制热力图的颜色范围,从而只显示值在 0 到 1 之间的数据。如果你想要显示其他范围的数据,只需要修改 `vmin` 和 `vmax` 的值即可。