Altair可视化:如何将图层中所有灰色点替换为指定符号
解决方案:统一替换Altair图表中的点符号
要将图表中所有灰色点替换为短横线(或其他指定符号),只需在mark_point中添加shape参数并设置为目标符号即可,无需按字段映射。
修改后的完整代码
import pandas as pd import altair as alt df=pd.read_csv("tmp_reshape.csv",keep_default_na=False) mean=alt.Chart(df).mark_line(color="#0000ff",strokeWidth=1).encode( alt.X('period:O'), alt.Y('mean:Q',title=None, scale=alt.Scale(zero=False)) ) median=alt.Chart(df).mark_line(color="#ffa500",strokeWidth=1,strokeDash=[5, 5]).encode( alt.X('period:O'), alt.Y('median:Q',title=None, scale=alt.Scale(zero=False)) ) minmax=alt.Chart(df).mark_rule(color="grey",strokeWidth=0.5).encode( alt.X('period:O'), alt.Y('minimum:Q',title=None), alt.Y2('maximum:Q',title=None) ) # 替换为短横线符号 min=alt.Chart(df).mark_point(filled=True,color="grey",size=15, shape='-').encode( alt.X('period:O'), alt.Y('minimum:Q',title=None) ) # 替换为短横线符号 max=alt.Chart(df).mark_point(filled=True,color="grey",size=15, shape='-').encode( alt.X('period:O'), alt.Y('maximum:Q',title=None) ) alt.layer(minmax,min,max,median,mean).properties(width=470,height=100).facet(row='param:N').resolve_scale(y='independent')
关键说明
shape参数支持多种预定义符号,除了短横线'-',还可以使用竖线'|'、正方形'square'、三角形'triangle-up'等,直接赋值即可全局应用到当前图层的所有点。- 如果需要更自定义的符号,也可以使用SVG路径字符串作为
shape的值,比如shape='M 0 -2 L 0 2'也能实现短横线效果。
内容的提问来源于stack exchange,提问作者aborruso
相关产品推荐
相关产品推荐

