2016-08-28 6 views
1

Bokeh에서 상관 관계 히트 맵을 만들려면 어떻게해야합니까?파이썬 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을 사용하는 것이 좋습니다. 당신은 갤러리에서이 인터페이스를 사용하여 생성 범주 히트 맵의 예를 볼 수 있습니다

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


전설과 관련,이 같은 색상 맵에 대해 당신이 실제로 대신 Legend의 이산 ColorBar을 할 것입니다. 이 기능은 이번 주말에 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의에 환매 특약의 예입니다

마지막 예제는 파이썬에서 색상을 사전 계산하는 대신 브라우저에서 색상 맵핑을 수행하는 또 다른 새로운 기능을 사용합니다. 기본적으로 모두 다음과 같이 표시됩니다.

# 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

: 당신이 (가) 년 Colorbar에 똑딱을 제어하려는 경우 더주의 같은 것들을 달성하기 위해, 단지 일반 Axis에 같은 포맷을 사용자 정의 시세를 추가 또는 눈금 수 , 그래서 나는 이것을 알아두면 유용하다고 생각할 뿐이다.

0.12.2이 출시 될 때까지 "dev build"또는 릴리스 후보를 설치하여 이러한 새로운 기능을 사용할 수 있습니다. 주요 문서 사이트에는 installing developer builds에 대한 간단한 지침이 있습니다.


마지막으로, 보케는 대형 프로젝트와 토론을하고, 너무 자주 할 수있는 더 많은 정보와 컨텍스트를 요구 포함하고, 일반적으로 가장 좋은 방법을 찾는 것입니다. 그러한 종류의 협조적인 도움은 SO에서 눈살을 찌푸리게하는 것처럼 보입니다 (그들은 실제 답변이 아닙니다). 그래서 언제든지 public mailing list을 확인해 보시기 바랍니다.

+0

좋습니다. 내가 원하는 것을 정확하게 본다. 나는 새 릴리스를 기다릴 것이다. – jf328