如何将 Altair 图表设置为特定的增量?

How to set Altair graph to specific increments?

所以我正在处理我创建的调查中的数据。我正在尝试创建一个堆叠条形图,显示我收到的回复中性别与抑郁症的差异。抑郁症的值是 1、2、3、4、5,介于两者之间。当我尝试绘制它时,它给了我最大 5 的增量值。我怎样才能在没有增量值的情况下绘制 1 - 5 的图形?

alt.Chart(df).mark_bar().encode(
x='Depression',
y='Responses',
color='Gender',
order=alt.Order(
  'Gender',
  sort='ascending'
)

这给了我这个:

公平地说,我知道这不是我的图表唯一的问题,但我正在努力弄清楚如何让它真正发挥作用。这只是我 运行 关注的问题之一。

您可以在编码中指定序数数据类型。

altair 中的数值数据默认为 quantitative 编码类型,适用于连续的实值数据。 序数 编码适用于像您的数据中那样的离散有序类别。

您可以在编码中使用 "*:O" shorthand 指定序号编码:

alt.Chart(df).mark_bar().encode(
  x='Depression:O',
  y='Responses',
  color='Gender',
  order=alt.Order(
    'Gender',
    sort='ascending'
  )
)

有关详细信息,请参阅 Encoding Data Types in the Altair documentation, and in particular the Effect of Data Type on Axis Scales 部分。