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:
在上面的示例中,我们使用了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:
在上面的示例中,我们使用了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:
在上面的示例中,我们定义了一个由五种颜色组成的调色板,并使用这个调色板为散点图指定颜色。
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:
以上示例展示了使用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:
在上面的示例中,我们使用了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:
在上面的示例中,我们使用了四种颜色来表示不同类别的饼图。
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:
在上面的示例中,我们使用了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:
在上面的示例中,我们使用了灰色调色板来绘制黑白风格的柱状图。
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
中常用的一些颜色调色板,包括单色调色板、多色调色板、内置调色板、自定义调色板等,并演示了如何使用这些调色板来创建多样化的图表。