千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 详解plt.colorbar

详解plt.colorbar

来源:千锋教育
发布人:xqq
时间: 2023-11-23 15:46:27 1700725587

一、基本介绍

plt.colorbar是matplotlib库中用来添加颜色条的函数。颜色条可以为图形提供重要的信息,例如数据值对应的颜色等级。在其最简单的用法中,plt.colorbar函数将当前活动图形(gca)中的图像作为输入,并添加一个垂直颜色条(色卡)到其右侧。


import numpy as np
import matplotlib.pyplot as plt

# 生成数据并画出散点图
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
sizes = np.pi * (15*np.random.rand(N))**2
plt.scatter(x, y, s=sizes, c=colors)
plt.colorbar()

plt.show()

二、颜色映射

plt.colorbar的主要功能是将特定范围的数据值与颜色进行匹配,并创建相应的颜色条。这是通过指定cmap参数来实现的,该参数指定了要使用哪个颜色映射。matplotlib提供了几种内置的颜色映射,其中包括:

viridis plasma inferno magma hot cool spring summer autumn winter

也可以创建自定义颜色映射,具体见下方代码。


import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap

# 自定义颜色映射
colors = [(0, 0, 1), (0, 1, 0), (1, 0, 0)]
cmap = LinearSegmentedColormap.from_list('my_cmap', colors, N=3)

# 生成数据并画出散点图
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
z = np.random.randint(0, 3, N)
plt.scatter(x, y, c=z, cmap=cmap)
plt.colorbar(ticks=[0, 1, 2], label='Class')

plt.show()

三、颜色条格式化

为了让颜色条上的标签更为清晰易读,可以通过设置plt.colorbar的标签参数label和刻度参数ticks等进行调整。此外,您还可以使用format参数来格式化标签。


import numpy as np
import matplotlib.pyplot as plt

# 生成数据并画出散点图
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
z = np.random.randint(0, 100, N)
plt.scatter(x, y, c=z, cmap='jet')
plt.colorbar(format='%d%%', label='Percentage')

plt.show()

四、水平颜色条

plt.colorbar默认会创建一个垂直颜色条,但是有时候需要一个水平颜色条。您只需要将方向参数orientation设置为'horizontal'即可。


import numpy as np
import matplotlib.pyplot as plt

# 生成数据并画出散点图
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
sizes = np.pi * (15*np.random.rand(N))**2
plt.scatter(x, y, s=sizes, c=colors)
plt.colorbar(orientation='horizontal')

plt.show()

五、多图形颜色条

如果您在单个图形中绘制了多个数据集,每个数据集都需要用不同的颜色映射。此时,您可以为每个子图创建各自的颜色条。示例代码如下:


import numpy as np
import matplotlib.pyplot as plt

# 生成数据并画出两个子图形
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors1 = np.random.rand(N)
sizes = np.pi * (15*np.random.rand(N))**2

fig, axs = plt.subplots(1, 2)

# 绘制第一个子图形并添加颜色条
axs[0].scatter(x, y, s=sizes, c=colors1, cmap='viridis')
cb1 = plt.colorbar(ax=axs[0], label='First')

# 绘制第二个子图形并添加颜色条
colors2 = np.random.rand(N)
axs[1].scatter(x, y, s=sizes, c=colors2, cmap='plasma')
cb2 = plt.colorbar(ax=axs[1], label='Second')

plt.show()

tags: plt.colorbar
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT