在 Altair 中生成 "dodged" 或 "side-by-side" bar/column 图表?
Produce "dodged" or "side-by-side" bar/column charts in Altair?
抱歉,如果之前有人问过这个问题,但我正在寻找一种使用 Altair 库创建 "dodged"(language 来自 ggplot2
)条形图的方法在 python。
我知道 Altair this example:
import altair as alt
from vega_datasets import data
source = data.barley()
alt.Chart(source).mark_bar().encode(
x='year:O',
y='sum(yield):Q',
color='year:N',
column='site:N'
)
产生这个情节:
但是,这有很多多余的标签和信息。理想情况下,我想要一个图,其中成对的条形图用颜色编码年份(蓝色是 1931 年,橙色是 1932 年),然后是城市 运行 沿 x 轴(序数变量)。
很难解释,但这里有一个示例,说明如何从 seaborn 获取这样的图(使用不同的数据;来源是):
是的,您已经找到在 Altair 中创建分组条形图的推荐方法。如果你想调整图表的最终外观,你可以做一些事情,比如删除和重新排列标签和标题;以下是您可以如何修改示例以使其更接近 seaborn 图表:
import altair as alt
from vega_datasets import data
source = data.barley()
alt.Chart(source).mark_bar().encode(
x=alt.X('year:O', axis=alt.Axis(title=None, labels=False, ticks=False)),
y=alt.Y('sum(yield):Q', axis=alt.Axis(grid=False)),
color='year:N',
column=alt.Column('site:N', header=alt.Header(title=None, labelOrient='bottom'))
).configure_view(
stroke='transparent'
)
万一有人通过 google 等到达这里,这里是将条形图拉近的代码:
import altair as alt
from vega_datasets import data
source = data.barley()
alt.Chart(source).mark_bar().encode(
alt.X('year:O', axis=None),#axis=alt.Axis(title=None, labels=False, ticks=False)),
alt.Y('sum(yield):Q', axis=alt.Axis(grid=True)),
alt.Facet('site:N',title="Facet title Here",),
color='year:N',
).properties(height=150, width=80).configure_view(
stroke='transparent'
).configure_scale(bandPaddingInner=0,
bandPaddingOuter=0.1,
).configure_header(labelOrient='bottom',
labelPadding = 3).configure_facet(spacing=5
)
结果:
感谢杰克用他的回答为我指明了正确的方向!
抱歉,如果之前有人问过这个问题,但我正在寻找一种使用 Altair 库创建 "dodged"(language 来自 ggplot2
)条形图的方法在 python。
我知道 Altair this example:
import altair as alt
from vega_datasets import data
source = data.barley()
alt.Chart(source).mark_bar().encode(
x='year:O',
y='sum(yield):Q',
color='year:N',
column='site:N'
)
产生这个情节:
但是,这有很多多余的标签和信息。理想情况下,我想要一个图,其中成对的条形图用颜色编码年份(蓝色是 1931 年,橙色是 1932 年),然后是城市 运行 沿 x 轴(序数变量)。
很难解释,但这里有一个示例,说明如何从 seaborn 获取这样的图(使用不同的数据;来源是
是的,您已经找到在 Altair 中创建分组条形图的推荐方法。如果你想调整图表的最终外观,你可以做一些事情,比如删除和重新排列标签和标题;以下是您可以如何修改示例以使其更接近 seaborn 图表:
import altair as alt
from vega_datasets import data
source = data.barley()
alt.Chart(source).mark_bar().encode(
x=alt.X('year:O', axis=alt.Axis(title=None, labels=False, ticks=False)),
y=alt.Y('sum(yield):Q', axis=alt.Axis(grid=False)),
color='year:N',
column=alt.Column('site:N', header=alt.Header(title=None, labelOrient='bottom'))
).configure_view(
stroke='transparent'
)
万一有人通过 google 等到达这里,这里是将条形图拉近的代码:
import altair as alt
from vega_datasets import data
source = data.barley()
alt.Chart(source).mark_bar().encode(
alt.X('year:O', axis=None),#axis=alt.Axis(title=None, labels=False, ticks=False)),
alt.Y('sum(yield):Q', axis=alt.Axis(grid=True)),
alt.Facet('site:N',title="Facet title Here",),
color='year:N',
).properties(height=150, width=80).configure_view(
stroke='transparent'
).configure_scale(bandPaddingInner=0,
bandPaddingOuter=0.1,
).configure_header(labelOrient='bottom',
labelPadding = 3).configure_facet(spacing=5
)
结果:
感谢杰克用他的回答为我指明了正确的方向!