您的位置:

matplotlib颜色对照表详解

一、matplotlib颜色表

matplotlib是一个非常常用的绘图库,提供了多种可视化操作函数。其中,颜色表的选择是绘制图形时非常重要的一个因素。下面介绍一些matplotlib提供的颜色表。

1、按颜色分组的颜色表

import matplotlib.pyplot as plt

colors = ['blue', 'green', 'red', 'cyan', 'magenta', 'yellow', 'black']
for i, color in enumerate(colors):
    plt.plot(range(5), [i]*5, label=color)

plt.legend()
plt.show()

使用颜色名称,可绘制颜色样本。

2、预定义的颜色表

import matplotlib.pyplot as plt

names = ['Accent', 'Dark2', 'Paired', 'Pastel1', 'Set1', 'Set2', 'Set3', 'tab10', 'tab20', 'tab20b', 'tab20c']
for i, name in enumerate(names):
    plt.subplot(3, 4, i+1)
    plt.imshow(plt.cm.get_cmap(name)(range(10)).T[::-1])
    plt.axis('off')
    plt.title(name)

plt.show()

使用预定义的颜色表,可绘制出不同颜色映射方案的色彩/灰度值序列的示例

3、自定义颜色表

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randint(0, 10, size=10)
y = np.random.randint(0, 10, size=10)

points = np.array([x, y]).T.reshape(-1, 1, 2)
segments = np.concatenate([points[:-1], points[1:]], axis=1)

fig, ax = plt.subplots(figsize=(5, 5))

norm = plt.Normalize(0, 1)
lc = LineCollection(segments, cmap='viridis', norm=norm)
lc.set_array(np.array([0.5]*9))
line = ax.add_collection(lc)
fig.colorbar(line, ax=ax)

plt.show()

使用自定义颜色序列,可绘制出自定义的颜色映射方案的色彩/灰度值序列。

二、matplotlib线条颜色

在matplotlib中,可以使用多种方式设置线条的颜色:

1、RGB颜色值

import matplotlib.pyplot as plt

plt.plot(range(5), 'r')  # 'r'表示红色线条
plt.show()

2、RGBA颜色值

import matplotlib.pyplot as plt

plt.plot(range(5), color='blue', alpha=0.5)  # blue的RGBA值为(0,0,1,1), alpha值取[0,1]
plt.show()

3、HTML颜色代码

import matplotlib.pyplot as plt

plt.plot(range(5), '#00FF00')  # 使用html颜色代码,表示绿色
plt.show()

三、matplotlib填充颜色

使用fill函数可以填充颜色

1、填充单色

import matplotlib.pyplot as plt

plt.fill_between(range(5), 0, range(5), color='skyblue', alpha=0.5)
plt.show()

2、填充多色

import matplotlib.pyplot as plt

x = range(5)
y = range(5)

fig, ax = plt.subplots()
ax.fill_between(x[:2], y[:2], color='blue', alpha=0.5)
ax.fill_between(x[1:3], y[1:3], color='green', alpha=0.5)
ax.fill_between(x[2:], y[2:], color='red', alpha=0.5)

plt.show()

四、matplotlib设置线条颜色

在matlplotlib中,可以使用set_color()函数来设置线条颜色。

1、设置单色线条颜色

import matplotlib.pyplot as plt

line, = plt.plot(range(5))
line.set_color('r')
plt.show()

2、设置多色线条颜色

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
line1, = ax.plot(range(5), label='Line 1')
line2, = ax.plot(range(1, 6), label='Line 2')
line3, = ax.plot(range(2, 7), label='Line 3')
plt.legend()

line1.set_color('red')
line2.set_color('green')
line3.set_color('blue')

plt.show()

五、matplotlib坐标轴颜色

可以使用spines来设置坐标轴颜色

1、自定义坐标轴颜色

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot(range(5))
ax.spines['bottom'].set_color('chartreuse')
ax.spines['top'].set_color('chartreuse')
ax.spines['left'].set_color('chartreuse')
ax.spines['right'].set_color('chartreuse')

plt.show()

2、隐藏坐标轴

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot(range(5))
ax.spines['bottom'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['right'].set_visible(False)

plt.show()

六、matplotlib好看的颜色

下面是一些matplotlib中比较好看的颜色可以作为参考:

1、蓝色系列

import matplotlib.pyplot as plt

plt.plot(range(5), color='dodgerblue')
plt.show()

2、红色系列

import matplotlib.pyplot as plt

plt.plot(range(5), color='tomato')
plt.show()

3、黄色系列

import matplotlib.pyplot as plt

plt.plot(range(5), color='gold')
plt.show()

七、matplotlib颜色设置

可以使用rcParams设置颜色的默认值。

1、设置线条颜色

import matplotlib.pyplot as plt

plt.rcParams['lines.color'] = 'r'
plt.plot(range(5))
plt.show()

2、设置坐标轴颜色

import matplotlib.pyplot as plt

plt.rcParams['axes.edgecolor'] = 'r'
plt.plot(range(5))
plt.show()

3、设置网格线颜色

import matplotlib.pyplot as plt

plt.rcParams['grid.color'] = 'r'
plt.plot(range(5))
plt.show()

八、python matplotlib颜色选取

下面介绍几种常用的颜色选取方式:

1、手动指定颜色

import matplotlib.pyplot as plt

colors = ['blue', 'green', 'red', 'cyan', 'magenta', 'yellow', 'black']
for i, color in enumerate(colors):
    plt.plot(range(5), [i]*5, label=color)

plt.legend()
plt.show()

2、取自定义颜色序列

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randint(0, 10, size=10)
y = np.random.randint(0, 10, size=10)

points = np.array([x, y]).T.reshape(-1, 1, 2)
segments = np.concatenate([points[:-1], points[1:]], axis=1)

fig, ax = plt.subplots(figsize=(5, 5))

norm = plt.Normalize(0, 1)
lc = LineCollection(segments, cmap='viridis', norm=norm)
lc.set_array(np.array([0.5]*9))
line = ax.add_collection(lc)
fig.colorbar(line, ax=ax)

plt.show()

3、使用colormap

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 1)
y = np.linspace(0, 1)
X, Y = np.meshgrid(x, y)
Z = X**2 - Y**2

fig, ax = plt.subplots()
im = ax.imshow(Z, cmap='viridis', extent=[0, 1, 0, 1])
fig.colorbar(im, ax=ax)

plt.show()

4、使用预定义颜色表

import matplotlib.pyplot as plt

names = ['Accent', 'Dark2', 'Paired', 'Pastel1', 'Set1', 'Set2', 'Set3', 'tab10', 'tab20', 'tab20b', 'tab20c']
for i, name in enumerate(names):
    plt.subplot(3, 4, i+1)
    plt.imshow(plt.cm.get_cmap(name)(range(10)).T[::-1])
    plt.axis('off')
    plt.title(name)

plt.show()

5、使用hex值

import matplotlib.pyplot as plt

plt.plot(range(5), '#FF00FF')
plt.show()

总结

这篇文章详细阐述了matplotlib中的颜色对照表相关知识,包含了matplotlib颜色表、matplotlib线条颜色、matplotlib填充颜色、matplotlib设置线条颜色、matplotlib坐标轴颜色、matplotlib 好看的颜色、matplotlib颜色设置和python matplotlib颜色选取等方面。以上是一些常用的颜色设置方式,希望对大家有所帮助。