首页 > 解决方案 > Pyplot:如何制作具有非线性比例的颜色条?

问题描述

我想添加到我的情节 a colorbar,它具有非线性比例。例如,对于这样的情节:

在此处输入图像描述

我想在右侧的栏上只有 5 种不同的颜色,而不是渐变(不要注意情节本身;这只是一个例子)。

我不想使用contourf并想找到一些更通用的解决方案。

标签: pythonmatplotlibcolorbar

解决方案


如果您想在颜色栏中包含离散值,一种快速的方法是使用该cmap=plt.cm.get_cmap()函数并传递您正在使用的任何颜色图类的名称以及所需的 bin 数量。

import matplotlib.pyplot as plt
plt.style.use('classic')
%matplotlib inline

import numpy as np

# Random Data Visualation
x = np.linspace(0, 10, 1000)
data = np.sin(x) * np.cos(x[:, np.newaxis])

plt.imshow(data, cmap=plt.cm.get_cmap('viridis', 5))
plt.colorbar()
plt.clim(-1, 1);

在此处输入图像描述

有关 Matplotlib 中所有颜色图的更多文档[这里]


推荐阅读