バーの色をあらかじめ定義された色のセットから選択するバープロットを作成しようとしています。 "pahse"値は色を決定します。 3つの範囲に分割され、範囲がランク付けされます。ランクは、パレットからカラーを呼び出すために使用されます。この部分はうまく動作します。しかし、私はカラーバーがついていました。カラーバーには、ランク付けに使用された値に基づく辞書「rank_classes」とティック/ラベルのキーに基づいた色を含める必要があります。私はmatplotlibのmpl.colorbar.ColorbarBase()を試しましたが、seaborns sns.cubehelix_palette()が好きではないようです。私はこれらの2つのものを一緒に、あるいはもっと簡単な解決策をとるためにどうやって置くのだろうか?バーの色をランクで選択したときのバープロットのカラーバー
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style("white")
#%matplotlib inline
index = ['25', '26', '27']
count = [10, 50, 22]
phase = [0.9, 2.2, 1.2]
ranks = [0, 2, 1]
rank_classes = {0:"Ph<1", 1:"1<Ph<1.2", 2:"Ph>=1.2"}
d = {'count' : pd.Series(count, index=index),
'phase' : pd.Series(phase, index=index),
'rank' : pd.Series(ranks, index=index)
}
df = pd.DataFrame(d)
# barplot
fig, ax = plt.subplots()
pal = sns.cubehelix_palette(3)
x = df.index
y = list(df['count'])
z = list(df['rank'])
sns.barplot(x=x, y=y, palette=np.array(pal)[z])
sns.despine()
あなたはこのhttp://stackoverflow.com/questions/31313606/pyplot-matplotlib-bar-chart-with-fill-color-depending-on-valueのような意味ですか? – lanery
@lanery 私が見ているのは、お互いの上に2つの図をプロットし、散布図からカラーバーのみを表示することです。私の場合は、私のニーズに合わせて参照コードを適合させることに2つの問題があります。 まずは、** sns.cubehelix_palette(3)**のような色数のあらかじめ定義された色のseabornカラースキームを使用したいと思います。しかし、このフォーマットはplt.scatter()のcmapと互換性がありません。どのように互換性を持たせるのですか? 第2に、** sns.cubehelix_palette(3)で**、plt.colobar(**)の最初の色、2番目の色などの定義済みの文字列ラベル( "A"、 "B"、 "Z")を割り当てる方法()**? – tonu