matplotlib color palettes

matplotlib color palettes

参考:matplotlib color palettes

在数据可视化中,颜色搭配是非常重要的一环。正确的颜色选择不仅能够让图表看起来更加美观,还可以帮助观众更好地理解数据。而matplotlib提供了丰富的颜色调色板供我们选择,可以根据不同需求选择不同风格的调色板。本文将介绍matplotlib中常用的一些颜色调色板,并演示如何使用这些调色板来创建各种各样的图表。

1. 单色调色板

单色调色板中只包含一种颜色,可以用于表示单一的数据类别或者使用在渐变色中作为基础颜色。下面是一个简单的示例代码:

import matplotlib.pyplot as plt
import numpy as np

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

plt.plot(x, y, color='skyblue')
plt.show()

Output:

matplotlib color palettes

在上面的示例中,我们使用了skyblue作为线条的颜色。

2. 多色调色板

多色调色板可以按照数据的不同类别或者程度区分使用不同的颜色。下面是一个使用多色调色板绘制散点图的示例:

import matplotlib.pyplot as plt
import numpy as np

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

plt.scatter(x, y, c=colors, cmap='cool')
plt.colorbar()
plt.show()

Output:

matplotlib color palettes

在上面的示例中,我们使用了cool调色板来为散点指定颜色,随着数据值的变化,颜色也会渐变。

3. 内置调色板

matplotlib中内置了多种常用的颜色调色板,下面列举了一些常用的内置调色板:

  • ‘viridis’: 从紫色到黄色的调色板,颜色按照对比度递增。
  • ‘plasma’: 从蓝色到红色的调色板,颜色按照亮度递增。
  • ‘inferno’: 从蓝色到黄色的调色板,颜色按照对比度递增。
  • ‘magma’: 从紫色到黄色的调色板,颜色按照亮度递增。
import matplotlib.pyplot as plt
import numpy as np

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

plt.plot(x, y, color='purple', label='purple')
plt.plot(x, np.cos(x), color='viridis', label='viridis')
plt.plot(x, np.tan(x), color='plasma', label='plasma')
plt.legend()
plt.show()

以上示例中展示了使用不同内置调色板绘制三条曲线的效果。

4. 自定义调色板

除了使用内置调色板外,我们也可以自定义调色板,根据需要定义颜色的数量和分布。下面是一个自定义调色板的示例:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.colors as mcolors

colors = ['blue', 'green', 'red', 'purple', 'orange']
cmap = mcolors.ListedColormap(colors)

x = np.random.rand(50)
y = np.random.rand(50)
sizes = np.random.rand(50) * 100

plt.scatter(x, y, c=np.random.rand(50), cmap=cmap, s=sizes)
plt.colorbar()
plt.show()

Output:

matplotlib color palettes

在上面的示例中,我们定义了一个由五种颜色组成的调色板,并使用这个调色板为散点图指定颜色。

5. 调色板风格

matplotlib提供了多种具有不同风格的调色板,下面是一些常用的调色板风格:

  • ‘muted’: 柔和的调色板风格,常用于表示多类别数据。
  • ‘deep’: 深色调色板风格,对比度强烈,常用于强调数据值的变化。
  • ‘pastel’: 柔和的粉彩调色板风格,适合用于表示比较温和的数据。
  • ‘dark’: 深色调色板风格,常用于绘制黑色背景的图表。
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

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

sns.set_palette('deep')
plt.plot(x, y)
plt.show()

Output:

matplotlib color palettes

以上示例展示了使用deep调色板风格绘制正弦曲线的效果。

6. 连续性调色板

连续性调色板适合用于表示数据的连续变化,可以根据数据的大小来决定颜色的深浅。下面是一个使用连续性调色板绘制热图的示例:

import matplotlib.pyplot as plt
import numpy as np

data = np.random.rand(10, 10)

plt.imshow(data, cmap='coolwarm')
plt.colorbar()
plt.show()

Output:

matplotlib color palettes

在上面的示例中,我们使用了coolwarm调色板来绘制矩阵数据的热图。

7. 离散性调色板

离散性调色板适合用于表示不同类别的数据,每个类别对应一种颜色。下面是一个使用离散性调色板绘制饼图的示例:

import matplotlib.pyplot as plt

sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']
colors = ['skyblue', 'pink', 'lightgreen', 'yellow']

plt.pie(sizes, labels=labels, colors=colors)
plt.show()

Output:

matplotlib color palettes

在上面的示例中,我们使用了四种颜色来表示不同类别的饼图。

8. 色彩映射

颜色映射是将数据值映射为颜色的过程,matplotlib中提供了多种不同的颜色映射方式。下面是一个使用颜色映射显示等高线图的示例:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

plt.contourf(X, Y, Z, cmap='spring')
plt.colorbar()
plt.show()

Output:

matplotlib color palettes

在上面的示例中,我们使用了spring颜色映射将二维数据映射为彩色的等高线图。

9. 黑白调色板

在需要打印或者显示在黑白屏幕上的情况下,可以使用黑白调色板来代替彩色调色板,以保证图表能够清晰显示。下面是一个使用黑白调色板绘制柱状图的示例:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(5)
y = np.random.randint(1, 10, 5)

plt.bar(x, y, color='gray')
plt.show()

Output:

matplotlib color palettes

在上面的示例中,我们使用了灰色调色板来绘制黑白风格的柱状图。

10. 色调互换

有时候我们需要对默认的颜色进行调整,可以通过色调互换的方式来改变颜色搭配。下面是一个色调互换的示例:

import matplotlib.pyplot as plt
import numpy as np

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

plt.plot(x, y, color='orange')
plt.gca().set_facecolor('black')
plt.show()

Output:

matplotlib color palettes

在上面的示例中,我们将线条颜色设置为橙色,同时将图表背景色设置为黑色,从而改变颜色搭配。

结语

本文介绍了matplotlib中常用的一些颜色调色板,包括单色调色板、多色调色板、内置调色板、自定义调色板等,并演示了如何使用这些调色板来创建多样化的图表。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程