cmap_list = ['red', 'green', 'blue'] # 或者是其他颜色 ticks = [0, 50, 100,1200] # 自定义的刻度值 python里能不能按照以上列表,只建立三个格子,三种颜色的色标
时间: 2024-09-12 17:12:36 浏览: 43
Test_Map.rar_CMapStringToPtr_cmap_linux Cmap
当然可以。如果你想要创建一个只有三个格子,每个格子代表一种颜色的简单色标,并且刻度位置正好对应于给定的`ticks`列表,你可以稍微修改之前的代码。这里是一个简化的版本:
```python
import matplotlib.pyplot as plt
import numpy as np
cmap_list = ['red', 'green', 'blue']
ticks = [0, 50, 100, 1200]
data = np.array([0, 49, 99, 1199]) # 为了匹配刻度,设置数据点恰好在刻度之间
fig, ax = plt.subplots()
cbar = fig.colorbar(mappable=None, ticks=ticks, boundaries=data, cmap=cmap_list)
cbar.ax.set_yticklabels(cmap_list) # 显示对应的标签
# 由于只有一个条形图,不需要scatter
# 如果你想显示一些数据,可以用bar函数代替
# ax.bar(data, [1]*len(data), color=cmap_list)
plt.show()
```
这个代码会创建一个基本的颜色条,其长度按照`ticks`划分成三段,并且颜色依次为红、绿、蓝。每个刻度位置都会显示对应的颜色名称。
请注意,如果`ticks`列表中的间隔大于`data`中的最大值,那么可能会有空白部分因为没有对应的数据点。如果你希望每个刻度都有颜色,你需要确保`ticks`覆盖了所有可能的颜色边界。
阅读全文