python Altair:更改点符号

8gsdolmq  于 2023-01-01  发布在  Python
关注(0)|答案(1)|浏览(110)

我使用下面的代码来创建这个分面图表:
https://vega.github.io/editor/#/gist/a9f238f389418c106b7aacaa10561281/spec.json
我想使用另一个符号(示例中的破折号)代替灰色点。
我发现了很多使用字段按值渲染点的例子,但我还没有发现如何将特定的符号应用于层的所有点。
谢谢

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).encode(
    alt.X('period:O'),
    alt.Y('minimum:Q',title=None)
)

max=alt.Chart(df).mark_point(filled=True,color="grey",size=15).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')
mqkwyuun

mqkwyuun1#

使用shape="stroke",如下所示:

import altair as alt
from vega_datasets import data

source = data.cars()

alt.Chart(source).mark_point(
    shape="stroke"
).encode(x="Horsepower:Q", y="Miles_per_Gallon:Q")

或者说:

import altair as alt
from vega_datasets import data

source = data.cars()

c = alt.Chart(source).mark_point().encode(x="Horsepower:Q", y="Miles_per_Gallon:Q")
alt.layer(c, c).configure_point(shape="stroke")

More info here: https://altair-viz.github.io/altair-tutorial/notebooks/08-Configuration.html#top-level-configuration

相关问题