全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

详解plt.colorbar

发布时间:2023-11-23 15:46:27
发布人:xqq

一、基本介绍

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()

plt.colorbar

相关文章

c#region的综合使用介绍

c#region的综合使用介绍

2023-11-23
Vue Proxy代理原理详解

Vue Proxy代理原理详解

2023-11-23
linux查看wwn好,linux命令查看

linux查看wwn好,linux命令查看

2023-11-23
ArrayList是有序的吗?

ArrayList是有序的吗?

2023-11-23

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31
在线咨询 免费试学 教程领取