SortField
和 EncodingSortField
有什么区别?我对对轴的标记进行排序感兴趣,并且我经常在示例和讨论中看到这两个出现(EncodingSortField
的示例,SortField
的示例)。
我不知道如何解析文档字符串
EncodingSortField
:
用于对编码字段定义中的离散比例进行排序的排序定义。
与
SortField
的文档字符串进行比较:
变换的排序定义
你能解释一下这两件事之间的区别吗?我什么时候应该选择使用
EncodingSortField
而不是 SortField
?
虽然它们的名字相似,但它们的目的和用途却截然不同。
SortField
用于在可视化之前对聚合、窗口操作等转换中的基础数据进行排序。
例如:
import altair as alt
import pandas as pd
data = pd.DataFrame({
'date': ['2021-01-01', '2021-01-02', '2021-01-03'],
'sales': [30, 20, 50]
})
chart = alt.Chart(data).transform_window(
sort=[alt.SortField('date')],
cumulative_sales='sum(sales)',
frame=[None, 0]
).mark_line().encode(
x='date:T',
y='cumulative_sales:Q'
)
chart
EncodingSortField
对图表轴上数据的可视化呈现/编码进行排序。
例如:
import altair as alt
import pandas as pd
data = pd.DataFrame({
'category': ['A', 'B', 'C'],
'value': [3, 1, 2]
})
chart = alt.Chart(data).mark_bar().encode(
x=alt.X('category', sort=alt.EncodingSortField(field='value', order='ascending')),
y='value'
)
chart