在做散点图时如何获得 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
最佳答案
你必须告诉 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
确保我们不会用完颜色,并在使用最后一种颜色后再次从第一种颜色开始。
更新:
根据@Iceflower 的评论,通过
创建自定义调色板palette = sns.color_palette(None, len(files))
可能是一个更好的解决方案。不同之处在于,我在顶部的原始答案尽可能频繁地迭代默认颜色,而此解决方案创建的调色板具有与文件一样多的色调。这意味着没有颜色重复,但颜色之间的差异可能非常细微。
关于python - seaborn 使用 matplotlib scatter 循环颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28430385/