当使用并排显示两个条形图(一个水平图,一个垂直图)时alt.hconcat
,即使图表的高度相等,标题也未对齐。有没有办法对齐标题?
# Makes test dataframe
test = pd.DataFrame({"group":["a","b","c"],"value1":[4,5,6], "value2":[10,12,14]}).reset_index()
# Sets up vertical bar chart
chart1 = alt.Chart(test).mark_bar().encode(
x = alt.X('group:N'),
y = alt.Y('value1:Q')
).properties(height = 300, width = 300, title = "Testing Title 1")
# Sets up horizontal bar chart
chart2 = alt.Chart(test).mark_bar().encode(
x = alt.X('value2:Q'),
y = alt.Y('group:N')
).properties(height = 300, width = 300, title = "Testing Title 2")
# Shows bar charts side by side
alt.hconcat(chart1, chart2)
图表标题未对齐。(无法发布图片,因为我显然需要10个信誉点才能发布图片)
看来,此行为是由于自动避开了顶部刻度线及其从最左侧图表的y轴开始的标签“ 6”。Altair / Vega lite可能会自动将标题偏移量调整为图表中的最高元素,并且由于刻度线及其标签位于轴线上方,因此标题将相对于最右侧刻度线及其标签“ a”的最右轴垂直偏移”位于轴线的末端下方。
通过隐藏刻度线标签,您可以看到这确实是问题所在。
不太对齐,隐藏刻度线也会使其完全对齐。
要解决此问题,您可以手动将两个标题的偏移量设置为相同。不幸的是,.configure_title(offset=0)
在布局上同时设置两个标题不起作用,因为这会为自动闪避所使用的值增加偏移量。
相反,我相信您必须alt.TitleParams(offset=0)
为最左边的图设置偏移量,或者为最右边的图设置一个值,以使其与最左边的图相同的高度。在这种情况下,“ 9”似乎是神奇的数字
对于title = alt.TitleParams("Testing Title 2", offset=9)
最右边的情节:
这可能是Vegalite(而不是Altair)的问题/特征,因此深入研究问题跟踪器或发布新问题以要求默认情况下对齐它们可能会有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句