Морской цикл через цвета с разбросом матплотлиба

Как я могу получить морские цвета при выполнении графика рассеяния?

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

Ответы

Ответ 1

Вы должны указать matplotlib, какой цвет использовать. Чтобы использовать, например, палитру цветов по умолчанию:

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 гарантирует, что мы не закончим цвета и начнем с первого после использования последнего.

Ответ 2

Чтобы основываться на ответе Carsten, если у вас есть большое количество категорий для назначения цветов, вы можете захотеть закрепить цвета в очень большой палитре парусных судов, например xkcd_palette или crayon_palette.. Обратите внимание, что эта практика обычно анти-шаблон диаграммы: использование более 5-6 цветов обычно является излишним, и вам может потребоваться изменить тип диаграммы.

import matplotlib.pyplot as plt
import seaborn as sns

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