如何在 Altair 中重现在 seaborn 中完成的以下图表?
import seaborn as sns
tips = sns.load_dataset("tips")
ax = sns.boxplot(x="day", y="total_bill", hue="smoker",
data=tips, palette="Set3")
Run Code Online (Sandbox Code Playgroud)
这是我的尝试:
import altair as alt
chart = (
alt.Chart(tips)
.mark_boxplot()
.encode(x=alt.X("day"), y=alt.Y("total_bill"), color="smoker")
.interactive()
.properties(width=300))
chart.show()
Run Code Online (Sandbox Code Playgroud)
这给了我这个不需要的图表:
小智 8
将吸烟者放在 x 轴上,并使用当天的柱面,并稍微调整一下填充和间距:
chart = alt.Chart(df).mark_boxplot(ticks=True).encode(
x=alt.X("smoker:O", title=None, axis=alt.Axis(labels=False, ticks=False), scale=alt.Scale(padding=1)),
y=alt.Y("total_bill:Q"),
color="smoker:N",
column=alt.Column('day:N', sort=['Thur','Fri','Sat','Sun'], header=alt.Header(orient='bottom'))
).properties(
width=100
).configure_facet(
spacing=0
).configure_view(
stroke=None
)
chart
Run Code Online (Sandbox Code Playgroud)