matplotlib颜色列表
在数据可视化中,色彩是非常重要的一个因素,可以有效地传递信息和吸引观众的注意。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:
除了直接使用颜色的名称,还可以使用缩写形式来表示颜色,比如’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:
在这个示例中,(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:
在这个示例中,’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:
在这个示例中,根据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:
在这个示例中,通过定义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:
在这个示例中,每个点的颜色是随机生成的,并使用彩虹颜色映射来表示。
修改颜色透明度
除了指定颜色外,还可以对颜色的透明度进行调整。设置透明度的方法是给颜色名称后面加上一个透明度值,范围从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:
在这个示例中,第一条线的透明度为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,表示了一种渐变的颜色映射。
调整颜色范围
有时候需要调整颜色映射的范围,可以通过vmin
和vmax
参数来实现。下面是一个调整颜色范围的示例:
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:
在这个示例中,将颜色映射范围设置为-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中丰富的颜色选择方案,包括预定义颜色、RGB和RGBA表示颜色、xkcd颜色、Colormap、自定义颜色映射等。根据不同的需求和场景,可以选择合适的颜色方案来进行数据可视化。