【问题标题】:Altair histogram, is it possible to give a name to the mark_rule?Altair 直方图,是否可以为 mark_rule 命名?
【发布时间】:2019-10-09 20:00:57
【问题描述】:

我有一个数据框,我绘制了下面的图。

代码是这样的:

import altair as alt
alt.renderers.enable('default')

base = alt.Chart(df_800).properties()

bar = base.mark_bar().encode(
    x=alt.X('volumechange', bin=True, title='Volume Change'),
    y='count()'
)

rule = base.mark_rule(color='red').encode(
    x='mean(volumechange)',
    size=alt.value(5)
)

rule2 = base.mark_rule(color='orange').encode(
    x='median(volumechange)',
    size=alt.value(5),
)

bar + rule + rule2

我想添加一个图例或类似的东西来表明红色规则是音量变化的平均值,橙色是中位数。这是我第一次使用 altair,不胜感激。

【问题讨论】:

    标签: python plot altair


    【解决方案1】:

    Altair 中的图例是根据颜色编码自动生成的,因此诀窍是将聚合转换为一种格式,其中它们的标签是由颜色编码的列。这是您可以做到的一种方法:

    import pandas as pd
    import numpy as np
    df_800 = pd.DataFrame({'volumechange': np.random.randn(100)})
    
    base = alt.Chart(df_800)
    
    bar = base.mark_bar(color='lightgray').encode(
        x=alt.X('volumechange', bin=True, title='Volume Change'),
        y='count()'
    )
    
    aggregates = base.transform_aggregate(
        mean='mean(volumechange)',
        median='median(volumechange)',
    ).transform_fold(
        ['mean', 'median']
    ).mark_rule().encode(
        x='value:Q',
        color='key:N'
    )
    
    bar + aggregates
    

    【讨论】:

    • 我试过这个,但在关键我得到圆圈标记不线。我使用了完全相同的代码,我该如何解决这个问题?
    • 将您的渲染器更新到最新版本的 Vega-Lite。
    • 可以把规则加粗吗?我尝试在 mark_rule() 中添加厚度和宽度,但它们没有改变任何东西。
    • 是的,您可以像在原始代码中那样使用size 编码,也可以将size 参数传递给mark_rule()
    • 如何更改聚合体的颜色?
    猜你喜欢
    • 2021-10-03
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 2020-07-05
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    相关资源
    最近更新 更多