【问题标题】:Controlling Bin Widths in Altair在 Altair 中控制 bin 宽度
【发布时间】:2019-07-21 22:52:08
【问题描述】:

我想在直方图上绘制一组数字。

说:

import numpy as np
import matplotlib.pyplot as plt

my_numbers = np.random.normal(size = 1000)
plt.hist(my_numbers)

如果我想控制垃圾箱的大小和范围,我可以这样做:

plt.hist(my_numbers, bins=np.arange(-4,4.5,0.5))

现在,如果我想在 Altair 中绘制直方图,下面的代码就可以了,但是如何控制 Altair 中 bin 的大小和范围?

import pandas as pd
import altair as alt

my_numbers_df = pd.DataFrame.from_dict({'Integers': my_numbers})

alt.Chart(my_numbers_df).mark_bar().encode(
    alt.X("Integers", bin = True),
    y = 'count()',
)

我搜索了 Altair 的文档,但他们所有的解释和示例图表(我能找到)都只是说 bin = True 没有进一步修改。

感谢任何指针:)

【问题讨论】:

  • P.S.我确实尝试在问题中添加图表,但显然我没有足够的声誉来做到这一点

标签: python histogram visualization altair


【解决方案1】:

正如文档的Bin transforms 部分中简要说明的那样,您可以传递一个alt.Bin() 实例来微调分箱参数。

相当于你的 matplotlib 直方图是这样的:

alt.Chart(my_numbers_df).mark_bar().encode(
    alt.X("Integers", bin=alt.Bin(extent=[-4, 4], step=0.5)),
    y='count()',
)

【讨论】:

猜你喜欢
  • 2019-12-25
  • 2020-04-30
  • 1970-01-01
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-15
相关资源
最近更新 更多