可以使用Altair的“resolve_scale”参数来解决此问题,将柱状图和圆点标记的缩放分开处理。下面是一个示例代码:
import altair as alt
source = pd.DataFrame({ 'x': ['A', 'B', 'C', 'D'], 'y': [2, 3, 8, 5], 'z': [7, 1, 2, 3] })
bar = alt.Chart(source).mark_bar().encode( x='x:O', y=alt.Y('y:Q', axis=alt.Axis(minExtent=30)), color=alt.Color('y:Q', scale=alt.Scale(scheme='reds')) )
circle = alt.Chart(source).mark_circle(sort=['y']).encode( x='x:O', y='z:Q', color=alt.Color('y:Q', scale=alt.Scale(scheme='blues')) )
chart = (bar + circle).resolve_scale( y='independent' )
chart