Seaborn позволяет определять цветовые палитры, которые содержат несколько цветов, полезно для диаграмм со многими строками. Однако при настройке палитры на один с несколькими цветами используются только первые шесть, после чего цвета перерабатываются, что затрудняет выделение строк. Это можно переопределить, явно называя палитру, но это не удобно. Есть ли способ заставить текущую палитру Seaborn не перерабатывать цвета, если определено более 6?
Пример:
from matplotlib import pyplot as plt
import pandas as pd
import seaborn as sb
# Define a palette with 8 colors
cmap = sb.blend_palette(["firebrick", "palegreen"], 8)
sb.palplot(cmap)
# Set the current palette to this; only 6 colors are used
sb.set_palette(cmap)
sb.palplot(sb.color_palette() )
df = pd.DataFrame({x:[x*10, x*10+5, x*10+10] for x in range(8)})
fig, (ax1, ax2) = plt.subplots(2,1,figsize=(4,6))
# Using the current palette, colors repeat
df.plot(ax=ax1)
ax1.legend(bbox_to_anchor=(1.2, 1))
# using the palette that defined the current palette, colors don't repeat
df.plot(ax=ax2, color=cmap)
ax2.legend(bbox_to_anchor=(1.2, 1)) ;