【发布时间】: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 上表现得很奇怪。
另外,无论如何我可以避免重复价值标签在左侧,只放一次。