在Altair中,图例的顺序取决于数据的顺序。因此,当我们在将数据保存到磁盘时,图例顺序可能与存储在图形中时的顺序不同。为了解决这个问题,可以手动指定图例的顺序。
以下是一个示例代码,将数据保存到CSV文件中,并手动指定图例的顺序。
import altair as alt
import pandas as pd
# 创建示例数据集
source = pd.DataFrame({
'type': ['A', 'B', 'C', 'D'],
'value': [10, 20, 30, 40],
'category': ['cat1', 'cat1', 'cat2', 'cat2']
})
# 创建图表对象
chart = alt.Chart(source).mark_bar().encode(
x='category:O',
y='value:Q',
color='type:N'
)
# 将数据保存到CSV文件
source.to_csv('data.csv', index=False)
# 手动指定图例顺序
chart = chart.configure_legend(
symbolStrokeWidth=3
).configure_scale(
bandPaddingInner=0.2
).properties(
width=400,
height=300
).encode(
order=alt.Order(
'type',
sort=['A', 'B', 'C', 'D']
)
)
# 显示图表
chart