簡體   English   中英

altair分組的條形圖格式軸和填充

[英]altair grouped bar chart format axis and padding

我正在與Altair一起工作,並且喜歡使用它進行快速可視化。 不過,我在微調格式方面有些掙扎,尤其是在分組條形圖的填充和嘗試獲取非重復標題方面。

請查看到目前為止的圖: 到目前為止的圖以及生成該圖的代碼:

dfc = pd.DataFrame({'Alternative': {0: 0, 1: 1, 2: 0, 3: 1, 4: 0, 5: 1, 6: 0, 7: 1},
 'Time': {0: 1979,
  1: 1979,
  2: 1980,
  3: 1980,
  4: 1980,
  5: 1980,
  6: 1980,
  7: 1980},
 'Sim #': {0: 2688, 1: 3564, 2: 86, 3: 424, 4: 743, 5: 884, 6: 1530, 7: 1612},
 'Cost_MNOK': {0: .5,
  1: .4,
  2: 2,
  3: 3,
  4: 30,
  5: 40,
  6: 200,
  7: 300},
 'freq': {0: 5.555555555555556e-06,
  1: 5.555555555555556e-05,
  2: 5.555555555555556e-06,
  3: 5.555555555555556e-05,
  4: 5.555555555555556e-06,
  5: 5.555555555555556e-05,
  6: 5.555555555555556e-06,
  7: 5.555555555555556e-05},
 'Bin_text': {0: '0-1 MNOK',
  1: '0-1 MNOK',
  2: '1-10 MNOK',
  3: '1-10 MNOK',
  4: '10-100 MNOK',
  5: '10-100 MNOK',
  6: '100+ MNOK',
  7: '100+ MNOK'},
 'Bin': {0: 1, 1: 1, 2: 2, 3: 2, 4: 3, 5: 3, 6: 4, 7: 4}})


heatmap_colors = ['#edf8fb', '#b2e2e2', '#66c2a4', 'red']
alt.Chart(dfc).mark_bar().encode(
    alt.Column('Bin_text', header=alt.Header(title='Occurrence of failures grouped by cost')),
    alt.X('Alternative:N', axis=alt.Axis(orient='bottom', ), title='Alt'),
    alt.Y('sum(freq)', axis=alt.Axis(grid=False, format='%', title='Frequency')),
    alt.Color('Bin_text', scale=alt.Scale(range=heatmap_colors), legend=alt.Legend(title='Bins')),
    alt.Tooltip('sum(freq)', format='.2%')
).configure_view(strokeOpacity=0)

我要實現的目標如下:

  • 在第一行,我的條形圖組的標題被截斷。 我想防止這種情況,但也要防止重疊。 我希望可以通過增加小組之間的距離來做到這一點,但是我不知道該怎么做。 我嘗試了其他操作,將Scale對象添加到Column對象,但這不再是允許的參數(在altair v1中似乎可以)。 編輯:我已經找到了一種方法:在圖的最后添加.properties(width=200) ,可以提供更多的間距,並且圖標題變得可讀。 問題的另一部分仍然存在。
  • 在圖的底部,所有組均重復標題“ Alt”。 我希望這里有一個標題,而不是重復相同的文本。

歡迎任何想法和技巧!

從Altair v2.1 / Vega-Lite v2.6開始,無法更改構面之間的填充或自定義構面屬性(例如標題)。

跟蹤此功能的相關問題在這里: https : //github.com/vega/vega-lite/issues/2446

暫無
暫無

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

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