gpt4 book ai didi

sorting - Altair Color 正在覆盖/删除排序顺序

转载 作者:行者123 更新时间:2023-12-04 09:40:06 25 4
gpt4 key购买 nike

Altair 的新用户,尝试通过“球员数量”字段对 NFL 球员姓名进行排序。数据是预先聚合的,每个玩家姓名只显示一次,并带有与之关联的计数。

根据 -x 中的计数对“玩家名称”的 y Axis 进行排序可以正常工作,直到我添加颜色,我希望将其设为离散维度。知道需要做什么来防止颜色覆盖 Y 上的排序吗?

import altair as alt
import pandas as pd

source = pd.read_csv("C:/Users/abcdef/Documents/user_players.csv", encoding = "ISO-8859-1")
print(source.head())

bars = alt.Chart(source).mark_bar().encode(
x=alt.X('Player COUNT:Q'),#,scale=alt.Scale(domain=(1,5),clamp=True)),
y=alt.Y('Player Name:N',sort='-x')
#y=alt.Y('Player Name:N',sort=alt.SortField(field="sort_order",op="distinct",order='descending')),
,color='Ownership Percentile:O'
).transform_filter(
alt.FieldLTEPredicate(field='player_row', lte=50)
)

text = bars.mark_text(
align='left',
baseline='middle',
dx=3 # Nudges text to right so it doesn't appear on top of the bar
).encode(
text='Player COUNT:Q'
)

(bars + text).properties(width =400,height=900)#.interactive()

screenshot 1
screenshot 2

最佳答案

这看起来像是 Vega-Lite 渲染器中的一个错误。您可以使用 EncodingSortField 解决它。带有明确的 op代替 -x速记:

bars = alt.Chart(source).mark_bar().encode(
x=alt.X('Player COUNT:Q'),#,scale=alt.Scale(domain=(1,5),clamp=True)),
y=alt.Y('Player Name:N',sort=alt.EncodingSortField(field="Player COUNT", order='descending', op='max')),
color='Ownership Percentile:O'
).transform_filter(
alt.FieldLTEPredicate(field='player_row', lte=50)
)

关于sorting - Altair Color 正在覆盖/删除排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62364926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com