如何自定义 Matplotlib 中绘图的颜色和色彩映射


要自定义绘图的颜色和颜色映射,我们可以使用颜色库中的 colormap 属性。我们可以创建两种类型的颜色映射:(a) 离散颜色映射和 (b) 连续颜色映射。

我们首先要看到如何创建离散颜色映射,然后再创建连续颜色映射。

在示例中,我们将使用“iris”数据集创建三个绘图,其中第一个绘图使用默认颜色映射,另外两个使用 RGB 映射来创建混合色绘图。然而,我们可以创建与群集一样多的颜色映射。

示例

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

#Reading the iris dataset
iris = pd.read_csv('iris_dataset.csv', delimiter=',')
iris['species'] = iris['species'].map({"setosa" : 0, "versicolor" :1, "virginica" : 2})

#Defining the figure and its layout
fig, axs = plt.subplots(1,3, figsize=(9,6))
fig.subplots_adjust(left=0.0, bottom=0.05, right=0.9, top=0.95, wspace=0.6)

#Function to plot the graph
def plot_graph(axes, cm, cbaxs):
im = axes.scatter(iris.petal_length, iris.petal_width, s=10*iris.petal_length*iris.petal_width, c=iris.species, cmap = cm)
caxs = plt.axes(cbaxs)
fig.colorbar(im, caxs, ticks=range(3), label='clusetr #')

#Plot the iris dataset clusters with colors chosen from colormap
cbaxs = [0.24, 0.05, 0.03, 0.85] # left, bottom, width and height
plot_graph(axs[0], plt.cm.get_cmap('coolwarm', 3), cbaxs)

#Plot the iris dataset with custom colors RGB
colors = [(1, 0, 0), (0, 1, 0), (0, 0, 1)]
cm = LinearSegmentedColormap.from_list('custom_RGB_cmap', colors,N=3)

#Plot the iris dataset clusters with custom mixed colormaps
cbaxs = [0.58, 0.05, 0.03, 0.85]
plot_graph(axs[1], cm, cbaxs)
colors = [(1, 0.5, 0), (0.25, 0.5, 0.25), (0, 0.5, 1)]
cm = LinearSegmentedColormap.from_list('dummy', colors, N=3)
cbaxs = [0.95, 0.05, 0.03, 0.85]
plot_graph(axs[2], cm, cbaxs)

#Display the plot
plt.show()

输出

更新于:23-Feb-2021

530 次浏览

开启您的 职业生涯

通过完成此课程获得认证

开始
广告