如何在构面图中隐藏子图标签?

How to hide subplot labels in facet graph?

此代码:

import altair as alt
from vega_datasets import data

alt.Chart(data.iris()).mark_point().encode(
    x='petalLength:Q',
    y='petalWidth:Q',
    facet=alt.Facet('species:N', header=alt.Header(labels=False, title=None), columns=3)
).properties(
    width=250,
    height=250
)

生成此图表:

我在 believe are called subplot "labels". How can I remove them? asked how to change them, and @jakevdp said that is impossible. This question 询问如何删除它们(和我一样)的问题下方添加了红线,@jakevdp 尚未回答。他们使用 column 参数来消除标签,但是当我尝试这样做时,它会抱怨我正在使用的 columns 参数。我想要 (a) 消除标签和 (b) 限制每行的子图数量,自动换行。

你所做的应该有效(即alt.Header(title=None, labels=False));它不是的事实可能是一个错误(我认为这与此处报告的问题相同:https://github.com/altair-viz/altair/issues/2252

作为该问题的解决方法,您可以使用 labelExpr 隐藏它们:

alt.Chart(data.iris()).mark_point().encode(
    x='petalLength:Q',
    y='petalWidth:Q',
    facet=alt.Facet('species:N', header=alt.Header(labelExpr="''", title=None), columns=3)
).properties(
    width=250,
    height=250
)