gpt4 book ai didi

python - 在 Altair (Python) 中,有没有办法省略条形图的中间值?

转载 作者:行者123 更新时间:2023-11-28 21:31:35 25 4
gpt4 key购买 nike

我有一个条形图,它显示了一堆值,从高到低排列。但是我有太多(〜100)。我想制作一个省略中间排名值的条形图,以显示具有最高值的条形图和具有最低值的条形图,这与 Pandas 的 DataFrame 默认显示不同,后者显示前 20 个左右的值,然后是 ...,然后是最后 20 个左右。所以基本上是一个看起来像这样的图表:

X
XXX
XXXXX
XXXXX ... X

我总是可以创建一个只省略这些值的 DataFrame,但如果能以可视化方式表示该省略会更好。那可能吗?

最佳答案

我不知道在 Altair 中有什么直接的方法可以做到这一点,但是您可以破解您的 DataFrame 以提供一些不连续性的视觉指示,如下所示:

import pandas as pd
import altair as alt
from vega_datasets import data

raw = data.airports()
df = (raw[raw.country == "USA"]
.groupby("state")
.iata.count()
.rename("number_of_airports")
.sort_values(ascending=False).reset_index()
)

top_bottom = pd.concat(
(df.head(5), pd.DataFrame(data=[["...", 0]], columns=df.columns), df.tail(5)),
ignore_index=True
)

alt.Chart(
top_bottom.reset_index()
).mark_bar().encode(
alt.X("state",
sort=alt.EncodingSortField(field="index", op="sum"),
axis=alt.Axis(labelAngle=0)
),
y="number_of_airports"
)

输出: enter image description here

关于python - 在 Altair (Python) 中,有没有办法省略条形图的中间值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57827022/

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