Python 牵牛星:如何为轴添加一组固定的标签

Python 牵牛星:如何为轴添加一组固定的标签,python,altair,vega-lite,Python,Altair,Vega Lite,我有一个数据集,看起来是这样的: position reputation 0 RW 5 1 ST 5 2 LW 5 3 GK 3 4 LW 4 我现在得到的是一种查看每个位置有多少球员拥有特定声誉的方法,允许用户使用滑块选择最低声誉: slider = pn.widgets.IntSlider(name='Integer Slider', start=1, end=5,

我有一个数据集,看起来是这样的:

    position    reputation
0   RW          5
1   ST          5
2   LW          5
3   GK          3
4   LW          4
我现在得到的是一种查看每个位置有多少球员拥有特定声誉的方法,允许用户使用滑块选择最低声誉:

slider = pn.widgets.IntSlider(name='Integer Slider', start=1, end=5, step=1, value=3)

@pn.depends(slider.param.value)
def get_plot(min_rep):
     min_reputation = slider.value
     # create filter mask for the dataframe
     mask = (pbp['reputation'] >= min_reputation)
     tmp = pbp.loc[mask] # count of position
     # TODO: make this percent of each position, rather than count
     chart = alt.Chart(tmp).mark_bar().encode(
         x=alt.X('position'), 
         y='count(position)', 
         color=alt.Color('reputation:N')
     )
     return chart
问题是,当用户选择一个特定的信誉时,它也会删除任何“信誉”不超过限制的记录,因此我们从数据集中提取的“位置”数量不同。这是一种视觉上的不和谐,因为图表完全调整了大小,我花了很长时间试图找出如何为X设置一个固定的值数组,然后计算Y在每个类别中有多少记录。我已经深入研究了变换和过滤器,但还没有任何运气。牛郎星/织女星是非常数据驱动的,因此我可能必须将我的数据重组为如下内容:

    position    reputation_5   reputation_4   reputation_3   reputation_2   reputation_1
0   RW          1              10             100            200            1000

我想有一种方法可以告诉Y轴计算每个选定的类别,但如果能找到一种更聪明的方法,那就太好了。谢谢你的指点

尝试使用
设置恒定宽度。属性(宽度=200)

是否使用
设置恒定宽度。属性(宽度=200)
帮助?如果没有,你能提供一个可复制的样本数据吗?可能还有一些正在发生的事情的图像?这会设置图表的属性,但不会设置标签的属性。最后,我创建了一个单独的列,名为
position\u name
,并添加了一个转换来使用它:
alt.Chart(data).transform\u calculate(position\u name=alt.datum.position\u name)
。我不完全确定它为什么会起作用,但似乎是:)