web-dev-qa-db-ja.com

matplotlib scatterで色をシーボーンサイクル

散布図を作成するとき、どうすれば海の色を取得できますか?

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
24
amn41

使用する色を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 は、色が不足しないようにし、最後の色を使用した後、最初の色から再び開始することを確認します。

44
Carsten

カーステンの答えに基づいて、色を割り当てるカテゴリが多数ある場合は、たとえば xkcd_palette または crayon_palette ..この方法は通常 chartjunk anti-pattern であることに注意してください。= 5-6色以上を使用することは通常過剰であり、グラフの種類の変更を検討する必要があるかもしれません。

import matplotlib.pyplot as plt
import seaborn as sns

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