如何获得matplotlib.pyplot.scatter的默认蓝色?

Fab*_*ing 6 python matplotlib

如何获得matplotlib.pyplot.scatter中默认使用的蓝色阴影?在给出关键字参数时matplotlib.pyplot.scatter,它会给出更深的蓝色阴影.在matplotlib.pyplot.scatter的这个文档中,它说默认值应该是'b',但它看起来不同.

见下面的例子:

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.scatter(-1, 0)
ax.text(-1, 0, 'Default blue')
ax.scatter(1, 0, c='b')
ax.text(1, 0, 'Darker blue')
ax.set_xlim(-2, 2)
Run Code Online (Sandbox Code Playgroud)

数字

我正在使用Python 3.5和Matplotlib 2.0.0.我之所以这样问,是因为我想在逐一绘制一些点时使用相同的蓝色c='b'.

Dav*_*idG 17

默认颜色循环在matplotlib版本2中已更改,如文档中所示.

因此,要绘制"新"默认蓝色,您可以做两件事:

fig, ax = plt.subplots()

ax.scatter(-1, 1)
ax.text(-0.9, 1, 'Default blue')

ax.scatter(1, 1, c='#1f77b4')
ax.text(1.1, 1, 'Using hex value')

ax.scatter(0, 0.5, c='C0')
ax.text(0.1, 0.5, 'Using "C0" notation')

ax.set_xlim(-2, 3)
ax.set_ylim(-1,2)
plt.show()
Run Code Online (Sandbox Code Playgroud)

这使:

在此输入图像描述

或者,您可以将颜色循环更改回原来的颜色:

import matplotlib as mpl
from cycler import cycler

mpl.rcParams['axes.prop_cycle'] = cycler(color='bgrcmyk')
Run Code Online (Sandbox Code Playgroud)

  • 补充一点,`'C0'` 等价于 `'tab:blue'`,如果你想要一个更有意义的字符串值 (https://matplotlib.org/tutorials/colors/colors.html) (3认同)

小智 11

如文档中所述,默认颜色循环是“Tableau 颜色”。'tab:blue'可以使用、'tab:orange''tab:green'等访问这些内容。

所以应用于你的例子,那就是

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.scatter(-1, 0)
ax.text(-1, 0, 'Default blue')
ax.scatter(1, 0, c='tab:blue')
ax.text(1, 0, 'Also default blue')
ax.set_xlim(-2, 2)
Run Code Online (Sandbox Code Playgroud)

(归功于@Tulio Casagrande 的评论)