在altair中,如何在不改变轴刻度的情况下制作柱状图?当我尝试对数据进行装箱时,轴刻度不再延伸到直方图中的数据之外。我希望箱子和轴刻度分开计算
下面的代码是一个简单的示例,试图显示测量公差范围内的限制,以查看通过或失败的测量数量
import numpy as np
import pandas as pd
import altair as alt
nominal = 0.500
tolerance = 0.011
limits = pd.DataFrame({'x_limits' : [nominal - tolerance, nominal + tolerance]})
data = pd.DataFrame({'x_data' : np.random.normal(0.520, 0.002, 100)})
layers = []
layers.append(alt.Chart(data)
.mark_bar()
.encode(x = alt.X('x_data', bin = alt.Bin(nice = False)), y = 'count()'))
layers.append(alt.Chart(limits)
.mark_rule()
.encode(x = 'x_limits'))
chart = alt.layer(*layers)
输出仅在直方图箱下方的X轴上显示刻度,并且它们在公差限制的规则之前停止
我能够通过使用
mark_rect
而不是mark_bar
绘制直方图来解决这个问题。直接使用transform_bin
可以分别获得每个bin的开始和结束(在本例中为x
和x2
)。然后,在比例中设置zero = False
使边界像以前一样适合数据对于装箱轴,我认为需要设置箱子的范围以控制轴标签。在这种情况下,设置
alt.Bin(maxbins=50, extent=(0.48, 0.54)))
将提供:相关问题 更多 >
编程相关推荐