如何自定义 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()
输出
广告