首页 > 解决方案 > Altair:修复交互式()图表的标题位置

问题描述

我正在使用 Altair 创建一个mark_point带有clip=False.interactive(). 这允许我平移和缩放轴,同时允许点本身离开轴边界框并保持可见。

这样做的一个不直观的副作用是,情节标题会移动其位置以避开点,因为它们离开轴 - 如果我向下平移足够远,标题实际上将完全离开屏幕。 无论标记的内容如何在轴外移动,我都希望标题保持在固定位置。

似乎这应该可以通过configure_title但我无法弄清楚。关键字控制锚点的frame引用,但没有使用屏幕像素代替数据的选项。我检查了标题的 Vega 文档,它似乎没有 Altair 无法控制的任何相关属性。奇怪的是,轴标签没有这个问题:即使点在它们上方移动,它们也会保持在原来的位置。我希望标题的行为方式相同。

这是一个非常简单的 MRE,它创建了一个带有此问题的图:

    import altair as alt
    import pandas as pd
    import numpy as np

    df = pd.DataFrame({'x': np.linspace(0, 4, 100)})
    df['y'] = np.sin(2 * np.pi * df['x'])

    chart = alt.Chart(df, title='TITLE HERE').mark_point(filled=True, size=100, clip=False).encode(
        x='x:Q', y='y:Q').interactive()
    chart = chart.configure_title(frame='group')

显而易见的解决方法是不使用图表标题,而是使用窗口顶部的mark_textwithclip=False和固定像素坐标来手动制作我自己的标题,但我宁愿每次制作绘图时都不必跳过那个圈。

标签: pythonaltairvega-lite

解决方案


推荐阅读