2016-08-28 20 views
1

Bokehで相関ヒートマップを作成するにはどうすればよいですか?python bokeh、相関プロットを作る方法?

import pandas as pd 
import bokeh.charts 

df = pd.util.testing.makeTimeDataFrame(1000) 
c = df.corr() 

p = bokeh.charts.HeatMap(c) # not right 

# try to make it a long form 
# (and it's ugly in pandas to use 'index' in melt) 

c['x'] = c.index 
c = pd.melt(c, 'x', ['A','B','C','D']) 

# this shows the right 4x4 matrix, but values are still wrong 
p = bokeh.charts.HeatMap(c, x = 'x', y = 'variable', values = 'value') 

ところで、プロットの伝説ではなく、横にカラーバーを作れますか?また、色の範囲/マッピングを選択する方法(例:濃い青(-1)から白(0)から濃い赤(+1))?

答えて

4

このレベルの制御が必要な場合は、(わずかに)下位レベルbokeh.plotting interfaceを使用することをお勧めします。このようなカラーマップのためにあなたが実際に代わりLegendの離散ColorBarをお勧めします、伝説について

http://bokeh.pydata.org/en/latest/docs/gallery/categorical.html


:あなたはギャラリーで、このインタフェースを使用して生成されたカテゴリヒートマップの例を見ることができます。これは今週末の0.12.2リリースの(今日の日付:2016-08-28)に現れる新機能です。これらの新しいカラーバー注釈は、メインのプロット領域外に配置することができます。現在、そのためのマニュアルを参照してくださいするには、「DEVプレビュー」ドキュメントサイトを参照する必要があります。

https://github.com/bokeh/bokeh/blob/master/examples/plotting/file/color_data_map.py

http://bokeh.pydata.org/en/dev/docs/user_guide/annotations.html#color-bars

もGitHubのレポの例があります

最後の例では、Pythonの色を事前に計算する代わりに、ブラウザでカラーマップを行うために別の新しい機能も使用しています。基本的にはすべて一緒に見えます:

# create a color mapper with your palette - can be any list of colors 
mapper = LinearColorMapper(palette=Viridis3, low=0, high=100) 

p = figure(toolbar_location=None, tools='', title=title) 
p.circle(
    x='x', y='y', source=source 

    # use the mapper to colormap according to the 'z' column (in the browser) 
    fill_color={'field': 'z', 'transform': mapper}, 
) 

# create a ColorBar and addit to the side of the plot 
color_bar = ColorBar(color_mapper=mapper, location=(0, 0)) 
p.add_layout(color_bar, 'right') 

もっと洗練されたオプションもあります。

enter image description here

それはあなたの実際の要件が何であるかはっきりしていない:あなたはより慎重にカスタムティッカーを追加するかのようなものを達成するために、普通のAxisのようにフォーマッタをチェックできカラーバーの上に刻々と過ぎを制御したい場合、それを知ることが有用な場合に備えてこれを言及します。

0.12.2がリリースされるまで、「dev build」またはリリース候補をインストールすることで、これらの新機能を使用できます。メイン文書サイトにはinstalling developer buildsの簡単な手順があります。


最後に、ボケは大規模なプロジェクトと話し合いを持つので、頻繁に行うためのより多くの情報や文脈を求め関与し、一般的には最善の方法を見つけることです。そのようなコラボレーションの助けは、あまりにも助けを求めてpublic mailing listをチェックアウトすることをお勧めします。

+0

私が欲しいものを正確に見ている - 私は新しいリリースを待つ – jf328

関連する問題