登录
首页大数据时代python中matplotlib如何给不同系列指定颜色?
python中matplotlib如何给不同系列指定颜色?
2023-04-07
收藏

在Python中,matplotlib是一个广泛使用的绘图库。它可以用于创建各种类型的图表,包括折线图散点图条形图等等。当我们需要将多个数据系列绘制在同一张图中时,往往需要给每个系列指定不同的颜色。下面我将介绍如何在matplotlib中为不同系列指定颜色。

1. 使用颜色编码

matplotlib中,我们可以使用颜色编码来指定线条或点的颜色。常用的颜色编码有以下几种:

  • 'b':蓝色
  • 'g':绿色
  • 'r':红色
  • 'c':青色
  • 'm':洋红色
  • 'y':黄色
  • 'k':黑色
  • 'w':白色

我们可以通过在绘图函数中传入颜色编码的参数来指定线条或点的颜色。例如,下面的代码会将三个数据系列分别绘制成蓝色、绿色和红色的线条:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
y3 = [5, 4, 3, 2, 1]

plt.plot(x, y1, 'b')
plt.plot(x, y2, 'g')
plt.plot(x, y3, 'r')

plt.show()

上面的代码中,我们通过在plot()函数中传入'b'、'g'和'r'参数来指定了每个数据系列的颜色。

2. 使用十六进制颜色码

除了使用颜色编码外,我们还可以使用十六进制颜色码来指定颜色。使用这种方法,我们可以得到更加精细的颜色控制,因为我们可以指定任何RGB颜色的组合。

要使用十六进制颜色码,我们需要在plot()函数中传递一个color参数,并将其设置为一个字符串,该字符串以'#'开头,后面跟着六个十六进制数字(每两个代表一个RGB颜色通道)。例如,下面的代码会将三个数据系列分别绘制成蓝色、浅绿色和深红色的线条:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
y3 = [5, 4, 3, 2, 1]

plt.plot(x, y1, color='#0000ff')
plt.plot(x, y2, color='#00ff80')
plt.plot(x, y3, color='#800000')

plt.show()

上面的代码中,我们分别使用了'#0000ff'、'#00ff80'和'#800000'作为颜色参数,以分别为三个数据系列指定颜色。

3. 使用Colormap

如果我们需要为多个数据系列选择一组相关的颜色,我们可以使用Colormap。Colormap是matplotlib中的一个类,它将连续的数值映射到一组颜色中,并且支持多个预定义的颜色方案。

使用Colormap,我们可以为每个数据系列指定一个数值,然后使用Colormap将这些数值映射到一组颜色中。例如,下面的代码将使用Colormap为三个数据系列指定颜色:

import matplotlib.pyplot as plt
import numpy as np

x = [1, 2, 3, 4, 5]
y1 = [1,

2, 3, 4, 5] y2 = [1, 4, 9, 16, 25] y3 = [5, 4, 3, 2, 1]

创建一个0到1之间的序列,长度为数据系列的数量

colors = np.linspace(0, 1, len([y1, y2, y3]))

使用plt.cm模块中的Spectral颜色方案创建Colormap对象

cm = plt.cm.Spectral

绘制每个数据系列,并将其颜色设置为对应位置在Colormap中的颜色

plt.plot(x, y1, color=cm(colors[0])) plt.plot(x, y2, color=cm(colors[1])) plt.plot(x, y3, color=cm(colors[2]))

在图例中显示颜色条

sm = plt.cm.ScalarMappable(cmap=cm, norm=plt.Normalize(vmin=0, vmax=len([y1, y2, y3])-1)) sm._A = [] plt.colorbar(sm)

plt.show()


上面的代码中,我们首先使用`np.linspace()`函数创建了一个序列,该序列的长度等于数据系列的数量。然后,我们使用`plt.cm.Spectral`颜色方案创建了一个Colormap对象,并将该对象存储在变量`cm`中。接下来,我们分别为每个数据系列指定了一个颜色,其中颜色是通过将对应位置的序列值映射到Colormap中得到的。最后,我们使用`plt.colorbar()`函数在图例中显示了颜色条。

## 总结matplotlib中为不同数据系列指定颜色可以通过多种方式实现。我们可以使用颜色编码、十六进制颜色码或Colormap来指定颜色。使用Colormap时,我们可以为每个数据系列指定一个数值,并使用Colormap将这些数值映射到一组颜色中。无论选择哪种方法,都要确保为每个数据系列指定一个明显的颜色,以便轻松区分它们。

数据分析咨询请扫描二维码

客服在线
立即咨询