【问题标题】:Issue with altair facet labelaltair 刻面标签问题
【发布时间】:2022-10-06 21:56:32
【问题描述】:

我希望多面 altair 折线图的行标签出现在右侧。这是带有玩具数据生成器和输出的代码

import itertools
import random

def gen_toy_data():
    groups = [\"A\", \"B\", \"C\"]
    axes = [\'x\',\'y\',\'z\']
    comb = list(itertools.product(groups,axes))
    df_ar = []
    for grp, ax in comb:
        df_temp = pd.DataFrame()
        df_temp[\'Timestamp\'] = pd.date_range(\"2022-01-01\", periods=30, freq=\"H\")
        df_temp[\'grp\'] = grp
        df_temp[\'axis\'] = ax
        df_temp[\'value\'] = random.sample(range(1, 50), 30)
        df_ar.append(df_temp)
    df = pd.concat(df_ar)
    return df

df = gen_toy_data()

alt.Chart(df).mark_line(size=1).encode(
    x=alt.X(\'Timestamp:T\',axis=alt.Axis(format=\"%H:%M\")),
    y=alt.Y(\'value:Q\',axis=alt.Axis( grid = False)),
    color=alt.Color(\'axis:N\', title=\'Axes\'), 
    tooltip=[\'Timestamp\', \'axis\', \'grp\', \'value\'],
    row =alt.Row(\'grp:O\',title = \'Group\', 
            header=alt.Header(
                #orient=\'right\'
                 labelOrient=\'right\',
                 #labelAlign=\'right\',
                 titleOrient=\'right\',
                 #titleAlign=\'right\'
        )
    )
).properties(width=width, height=50)

titleOrient 有效,但 labelOrient 将标签放在 Y 轴的右侧。我想把它放在哪里团体是。

当我在mark_bar 绘图上使用它时,相同的设置产生了预期的结果,但在mark_line 上表现得很奇怪。

另外,无论如何我可以避免重复价值标签在左侧,只放一次。

    标签: python pandas altair


    【解决方案1】:

    我认为这是最新版本的 Altair 中的一个错误。运行开发版本(从 GitHub 安装),我从您的代码中得到以下输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-05
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      相关资源
      最近更新 更多