matplotlib颜色列表

matplotlib颜色列表

参考:matplotlib color list

在数据可视化中,色彩是非常重要的一个因素,可以有效地传递信息和吸引观众的注意。matplotlib作为一个强大的绘图库,提供了丰富的颜色选择方案。在这篇文章中,我们将详细介绍matplotlib中的颜色列表,包括预定义的颜色、使用RGB和RGBA表示颜色、使用xkcd颜色等。

预定义颜色

matplotlib中提供了一些预定义的颜色,可以直接使用它们来设置图表的颜色。下面是一些常用的预定义颜色:

import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4], color='blue')  # 蓝色
plt.plot([2, 3, 4, 5], color='red')  # 红色
plt.plot([3, 4, 5, 6], color='green')  # 绿色
plt.plot([4, 5, 6, 7], color='purple')  # 紫色
plt.show()

Output:

matplotlib颜色列表

除了直接使用颜色的名称,还可以使用缩写形式来表示颜色,比如’r’代表红色,’b’代表蓝色,’g’代表绿色,’k’代表黑色等。

RGB和RGBA表示颜色

如果想要使用自定义的颜色,可以使用RGB或RGBA表示颜色。RGB表示红、绿、蓝三种颜色的组合,而RGBA在RGB的基础上增加了一个表示透明度的参数。下面是一个使用RGB和RGBA表示颜色的示例:

import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4], color=(0.5, 0.1, 0.7))  # RGB表示颜色
plt.plot([2, 3, 4, 5], color=(0.2, 0.8, 0.5, 0.3))  # RGBA表示颜色
plt.show()

Output:

matplotlib颜色列表

在这个示例中,(0.5, 0.1, 0.7)表示颜色为淡紫色,(0.2, 0.8, 0.5, 0.3)表示颜色为淡绿色并且带有一定的透明度。

使用xkcd颜色

matplotlib还支持使用xkcd颜色名称来表示颜色,xkcd是一种在线色彩接口,包含了大量有趣的颜色名称。下面是一个使用xkcd颜色的示例:

import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4], color='xkcd:sky blue')  # 使用xkcd颜色名称
plt.plot([2, 3, 4, 5], color='xkcd:chartreuse')  # 使用xkcd颜色名称
plt.show()

Output:

matplotlib颜色列表

在这个示例中,’xkcd:sky blue’表示天蓝色,’xkcd:chartreuse’表示黄绿色。

使用Colormap

除了上述方法外,matplotlib还提供了Colormap的功能,可以根据数值的大小来自动选择颜色。下面是一个使用Colormap的示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.scatter(x, y, c=y, cmap='coolwarm')  # 使用Colormap绘制散点图
plt.colorbar()  # 添加颜色条
plt.show()

Output:

matplotlib颜色列表

在这个示例中,根据y值的大小自动选择了不同的颜色,并通过Colormap ‘coolwarm’来进行映射。

自定义颜色映射

如果想要使用自定义的颜色映射,可以通过LinearSegmentedColormap类来实现。下面是一个自定义颜色映射的示例:

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

cdict = {'red':   [[0.0, 0.0, 0.0],
                   [0.5, 1.0, 1.0],
                   [1.0, 1.0, 1.0]],
         'green': [[0.0, 0.0, 0.0],
                   [0.5, 1.0, 1.0],
                   [1.0, 0.0, 0.0]],
         'blue':  [[0.0, 1.0, 1.0],
                   [0.5, 0.0, 0.0],
                   [1.0, 0.0, 0.0]]}

custom_cmap = LinearSegmentedColormap('my_colormap', segmentdata=cdict)

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.scatter(x, y, c=y, cmap=custom_cmap)  # 使用自定义颜色映射绘制散点图
plt.colorbar()  # 添加颜色条
plt.show()

Output:

matplotlib颜色列表

在这个示例中,通过定义red、green、blue通道的颜色分布,创建了一个自定义的颜色映射,并将其应用在散点图中。

设置默认颜色循环

在matplotlib中,有一个默认的颜色循环,可以通过下面的方法设置默认的颜色循环:

import matplotlib.pyplot as plt
plt.rcParams['axes.prop_cycle'] = plt.cycler(color=['r', 'g', 'b', 'y'])

在这个示例中,将默认的颜色循环设置为红色、绿色、蓝色、黄色。

随机颜色

如果想要绘制每个点的颜色不同,可以使用随机颜色。下面是一个随机颜色的示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.random.rand(100)
y = np.random.rand(100)
colors = np.random.rand(100)

plt.scatter(x, y, c=colors, cmap='rainbow')  # 使用彩虹颜色映射
plt.colorbar()  # 添加颜色条
plt.show()

Output:

matplotlib颜色列表

在这个示例中,每个点的颜色是随机生成的,并使用彩虹颜色映射来表示。

修改颜色透明度

除了指定颜色外,还可以对颜色的透明度进行调整。设置透明度的方法是给颜色名称后面加上一个透明度值,范围从0到1。下面是一个修改颜色透明度的示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.plot(x, y1, color='blue', alpha=0.5)  # 修改线条透明度为0.5
plt.plot(x, y2, color='red', alpha=0.8)   # 修改线条透明度为0.8
plt.show()

Output:

matplotlib颜色列表

在这个示例中,第一条线的透明度为0.5,第二条线的透明度为0.8。

Colormap的互换

有时候需要将不同的Colormap互换,可以使用plt.cm.get_cmap()方法。下面是一个Colormap互换的示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.scatter(x, y, c=y, cmap=plt.cm.get_cmap('spring'))  # 使用spring Colormap
plt.colorbar()  # 添加颜色条
plt.show()

在这个示例中,使用了spring Colormap,表示了一种渐变的颜色映射。

调整颜色范围

有时候需要调整颜色映射的范围,可以通过vminvmax参数来实现。下面是一个调整颜色范围的示例:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.scatter(x, y, c=y, cmap='coolwarm', vmin=-1, vmax=1)  # 设置颜色映射范围为-1到1
plt.colorbar()  # 添加颜色条
plt.show()

Output:

matplotlib颜色列表

在这个示例中,将颜色映射范围设置为-1到1,确保所有的数据能够在这个范围内显示出来。

绘制堆叠柱状图

在柱状图中,有时候需要绘制堆叠柱状图,可以使用不同颜色来表示不同的堆叠区域。下面是一个绘制堆叠柱状图的示例:

import numpy as np
import matplotlib.pyplot as plt

N = 5
menMeans = np.array([20, 35, 30, 35, 27])
womenMeans = np.array([25, 32, 34, 20, 25])

ind = np.arange(N)
width = 0.35

p1 = plt.bar(ind, menMeans, width, color='b')
p2 = plt.bar(ind, womenMeans, width, bottom=menMeans, color='r')

plt.show()

Output:

matplotlib颜色列表

在这个示例中,使用蓝色和红色来表示男性和女性的数据,并对柱状图进行堆叠显示。

通过本文的介绍,我们了解了matplotlib中丰富的颜色选择方案,包括预定义颜色、RGB和RGBA表示颜色、xkcd颜色、Colormap、自定义颜色映射等。根据不同的需求和场景,可以选择合适的颜色方案来进行数据可视化。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程