我有一个条形图,显示了从最高到最低排名的一堆值。但是我太多了(〜100)。我想制作一个省略中间值的条形图,以显示具有最高值的条形图和具有最低值的条形图,这与Pandas DataFrame的默认显示不同,后者显示了前20个左右的值,然后是...
,然后是最后20个左右。因此,基本上,图表看起来像这样:
X
XXX
XXXXX
XXXXX ... X
我总是可以制作一个仅忽略那些值的DataFrame,但是最好以可视方式表示该遗漏。那可能吗?
答案 0 :(得分:3)
我不知道直接在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"
)
答案 1 :(得分:2)