在进行散点图时,如何获得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
答案 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_palette
或crayon_palette
..请注意,这种做法通常是a chartjunk anti-pattern:使用超过5-6种颜色通常是过度的,您可能需要考虑更改图表类型。
import matplotlib.pyplot as plt
import seaborn as sns
palette = zip(df['category'].unique(), sns.crayons.values())