我目前正在尝试切断Altair的折线图。到目前为止我的代码是:
Chart(orient_frame).mark_line().encode(
x = X('year:O'),
y = Y('count(type:N)', scale=Scale(domain=(0,2500)),
color = Color('type:N')
)
计数(类型:N)上升到超过9100的值,我想完全从图中删除它们。但是Scale()不会切割线,所以一条线'从图中射出'。
我也已经尝试了
Chart(orient_frame).mark_line().encode(
x = X('year:O'),
y = Y('count(type:N)'),
color = Color('type:N')
).transform_data(
filter='count(type:N) < 2500'
)
但它只是完全清空了输出。有人能帮我一下吗?这会很棒! 这是迄今为止第一个的输出
至于一个最小的工作实例被问到:
import altair as al
import pandas as pd
#Create a simple 1 variable example
answers = ['No' for _ in range(3)]
answers.extend(['Yes' for _ in range(5)])
answers.extend(['Maybe' for _ in range(20)])
dataframe = pd.DataFrame({'var1': answers})
#create Chart
al.Chart(dataframe).mark_bar().encode(
x=al.X('var1:N'),
y=al.Y('count(*):Q', scale=al.Scale(domain=(0,6)))
)
在这个例子中,我想'放大'到是/否答案,因为我不关心也许答案。
我可以修正比例,但是我不能阻止这个数字上升到20分钟。
答案 0 :(得分:1)
按照设计,Altair不会隐藏任何数据。请参阅:https://github.com/altair-viz/altair/issues/316#issuecomment-292560808
但是,如果您仍希望隐藏某些数据,则需要使用clamp
参数。
import altair as al
import pandas as pd
#Create a simple 1 variable example
answers = ['No' for _ in range(3)]
answers.extend(['Yes' for _ in range(5)])
answers.extend(['Maybe' for _ in range(20)])
dataframe = pd.DataFrame({'var1': answers})
#create Chart
al.Chart(dataframe).mark_bar().encode(
x=al.X('var1:N'),
y=al.Y('count(*):Q', scale=al.Scale(domain=(0, 6), clamp=True))
)
这会产生以下输出。