2017-12-01 35 views
0

ScatterArea을 중첩하려고하는데 후자는 축과 해당 레이블을 사라지게합니다.HoloViews 영역 중첩 축 및 레이블

import pandas as pd 
import holoviews as hv 
hv.extension('bokeh') 
from bokeh.models import HoverTool 

data = dict(A=["A1", "A1", "A1", "A1"], B=["B1", "B1", "B1", "B2"], C=[10, -5, 23, 9], D=[0, 5, -7, 6]) 
df = pd.DataFrame(data=data) 

df_hv = hv.Dataset(df) 

hover = HoverTool(
    tooltips=[("C", "@C{0,.0}"), 
       ("D", "@D{0,.0}")] 
) 

scatter = df_hv.to(hv.Scatter, kdims=["C", "D"], vdims=["C", "D"], groupby=["A", "B"]).redim.label(x="A (unitA)", y="B (unitB)") 
area = hv.Area([(0, 0), (10, 9), (30, 8), (25, -11), (15, -12), (0, 0)]).opts(style=dict(color="lightgrey", line_color="white", line_dash=None, alpha=0.5)).redim.label(x="A (unitA)", y="B (unitB)") 

: 그리고

%%opts Scatter [tools=[hover]] (size=10) 
scatter * area 

결과는 다음과 같다 :

With hv.Area

다음과 hv.Area 라인을 교체하는 경우,

area = hv.Curve([(0, 0), (10, 90), (30, 80), (25, 110), (15, 120)]).opts(style=dict(line_color="black", line_dash="dashed", alpha=0.5)) 
,536,913,632

enter image description here

이 버그가 : 10

당신은 축과 레이블을 볼 수 있습니다? 또는 나는 무엇인가 놓치고 있냐?

bokeh=0.12.7 
holoviews=1.8.3 
pandas=0.20.2 
python=3.6.1 

UPDATE

은 코멘트를 한 후에, I는로는 다음 영역,

area = hv.Area([(0, 0), (10, 9), (30, 8), (25, -11), (15, -12), (0, 0)]).opts(style=dict(color="lightgrey", line_color="white", line_dash="solid", alpha=0.5)).redim.label(x="A (unitA)", y="B (unitB)") 

변화하지만 그 부작용으로서 원점 따라 추한 라인을 가지고

With hv.Area 2

그리고 내가 더 잘되지 않는다면 line_color="lightgrey". 코멘트 중 하나에서 권장하는 옵션 line_alpha=0 추가

는 UPDATE 2

문제를 해결했다.

area = hv.Area([(0, 0), (10, 9), (30, 8), (25, -11), (15, -12), (0, 0)]).opts(style=dict(color="lightgrey", line_color="white", line_dash="solid", alpha=0.5, line_alpha=0)).redim.label(x="A (unitA)", y="B (unitB)") 

Solved

답변

1

꽤 잘 모르겠어요 어떻게, 왜 (나는 그것을 BokehJS에서 뭔가 의심) 발생하지만, 경우는 Area 요소에 스타일 옵션에서 line_dash=None 것 같다 제거하거나 축이 돌아 오는 line_dash='solid'으로 교체하십시오.

후속 조치를 취하고 bokeh에서 문제를 제기 할 것입니다.

+0

빠른 응답을 보내 주셔서 감사합니다! line_dash = "solid"를 만드는 문제는 원점을 따라 추악한 선이 생기는 것입니다. 나는 이것을 보여주기 위해 예제를 변경했다. – Bruno

+1

대신'line_alpha = 0' 또는'line_width = 0'을 설정해보십시오. – philippjfr

+0

line_alpha = 0 트릭을 했어! line_width가 문제를 해결하지 못했습니다. 게시물을 업데이트했습니다. – Bruno