簡體   English   中英

使用 Altair,我如何創建一個矩形顏色層?

[英]Using Altair, how do I create a rectangular color layer?

嘗試使用單獨的圖層用顏色填充矩形。 -- 編輯添加了一個 dataframe 並將矩形的數量減少到 5 個。

DF = pd.DataFrame(np.array([['josh',20.255954921881653, 28.273276474768977, 237.57142857142856, 265.84470504619753,
   711.6681465038845, 731.9241014257661], ['mike',17.174311926605526,
   33.61525704809287,  496.37455579246625, 529.9898128405591,
   488.5828386400432, 505.7571505666487],['kim',12.381243550051579, 18.73049780659926, 445.47959183673464,
   464.2100896433339, 400.26581527347787, 412.64705882352945],['ryan', 16.54241139180131, 14.2627034936894,
   681.0628210823381, 695.3255245760275, 61.462339239101226, 78.00475063090254],['ben', 12.717713479181384,
   18.753142318287132, 663.3220247966516, 682.0751671149387, 430.64705882352945, 443.36477230271083]]),columns=['label', 'height', 'width', 'x','x2', 'y', 'y2'])
base = alt.Chart(DF,width=500,height=500)
    rects=base.mark_rect(fill='id',stroke='black').encode(
    x='x',
    y='y',
    x2='x2',
    y2='y2')
    
    marks = base.mark_area().encode(
    x='x:Q',
    y=alt.Y('y:Q'),#impute = {'value':None}),
    x2='x2:Q',
    y2='y2:Q',
    fill=alt.Color('label:N'))#,scale=None),)    

    return alt.layer(rects, marks)

在此處輸入圖像描述

您不需要單獨的圖層來創建填充矩形:

alt.Chart(DF).mark_rect(stroke='black').encode(
    x='x',
    y='y',
    x2='x2',
    y2='y2',
    color='label')

在此處輸入圖像描述

如果你想要兩層,你可以按照下面的方法獲得相同的結果,但我看不出這種方法的優勢:

bottom = alt.Chart(DF).mark_rect(stroke='black', strokeWidth=3, fillOpacity=0).encode(
    x='x',
    y='y',
    x2='x2',
    y2='y2')

top = alt.Chart(DF).mark_rect().encode(
    x='x',
    y='y',
    x2='x2',
    y2='y2',
    color='label')

bottom + top

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM