matplotlib.pyplot.scatter()在导入seaborn包时失去颜色?

时间:2016-07-12 18:26:13

标签: python matplotlib plot

我正在使用jupyter笔记本中的matplotlib.pyplot.scatter()生成一些散点图,我发现如果导入seaborn包,散点图将失去颜色。我想知道是否有人有类似的问题?

这是一个示例代码

import matplotlib.pyplot as plt
import seaborn as sb

plt.scatter(range(4),range(4), c=range(4))

输出

enter image description here

没有seaborn的散点图是:

enter image description here

2 个答案:

答案 0 :(得分:1)

这似乎是它的行为方式。在seaborn 0.3中,默认色标被更改为灰度。如果您将代码更改为:

plt.scatter(range(4),range(4), c=sb.color_palette())

您将获得与原始颜色相似的图像。 有关详细信息,请参阅choosing color palettes上的Seaborn文档。

答案 1 :(得分:1)

解决此问题的另一种方法是为cmap指定plt.scatter()选项,以使其不受seaborn的影响:

ax = plt.scatter(range(4),range(4), c=range(4), cmap='gist_rainbow')
plt.colorbar(ax)

结果是: enter image description here

此处cmap有很多选项:

http://matplotlib.org/examples/color/colormaps_reference.html