首页 > 解决方案 > 如何在 Altair Visual 中的 Y 轴和条形图之间添加更多空间

问题描述

这是我现在的图表:

1

我想在百分比标签和条形图的开头之间留出更多空间,类似于此图表:

2

这是我正在处理的代码:

chart = alt.Chart(percentages_df).mark_bar(size=17, color= '#DAC352', dx=100).encode(
    x=alt.X(
        'PERCENT',axis=None),
    y=alt.Y(
        'PERCENT_TEXT',
         axis=alt.Axis(domain=False, tickSize=0,title='') ,sort='-y'))

text = alt.Chart(percentages_df).mark_text().encode(
    y=alt.Y('PERCENT_TEXT',axis=None, sort='-y'),
    text='EMOJI'
)
new_chart = alt.hconcat(text, chart).configure_view(strokeWidth=0).configure_axis(grid=False)
new_chart

标签: pythonaltair

解决方案


您可以使用labelPadding轴属性执行此操作,该属性指定标签和刻度之间的空间(以像素为单位)。例如:

import altair as alt
import pandas as pd

source = pd.DataFrame({
    'a': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
    'b': [28, 55, 43, 91, 81, 53, 19, 87, 52]
})

alt.Chart(source).mark_bar().encode(
    x = 'b',
    y=alt.Y('a', axis=alt.Axis(domain=False, tickSize=0, labelPadding=10))
)

在此处输入图像描述


推荐阅读