seaborn循环通过颜色与matplotlib分散

时间:2015-02-10 11:21:00

标签: python matplotlib seaborn

在进行散点图时,如何获得seaborn颜色?

import matplotlib.pyplot as plt
import seaborn as sns
ax=fig.add_subplot(111)
for f in files:
    ax.scatter(args) # all datasets end up same colour
    #plt.plot(args) #  cycles through palette correctly

2 个答案:

答案 0 :(得分:37)

你必须告诉matplotlib使用哪种颜色。例如,使用seaborn的默认调色板:

import matplotlib.pyplot as plt
import seaborn as sns
import itertools
ax=fig.add_subplot(111)

palette = itertools.cycle(sns.color_palette())

for f in files:
    ax.scatter(args, color=next(palette))

itertools.cycle确保我们不会使用颜色,并在使用最后一个后再次使用第一个颜色。

答案 1 :(得分:0)

基于Carsten的答案,如果你有大量的类别来分配颜色,你可能希望将颜色压缩到一个非常大的seaborn调色板,例如xkcd_palettecrayon_palette ..请注意,这种做法通常是a chartjunk anti-pattern:使用超过5-6种颜色通常是过度的,您可能需要考虑更改图表类型。

import matplotlib.pyplot as plt
import seaborn as sns

palette = zip(df['category'].unique(), sns.crayons.values())