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)) ;
set_palette
只是获取正在使用的调色板,而不是实例对象,因此默认情况下会返回一个由6个颜色循环组成的项目。 - tacaswell