我在包含过滤器的仪表板上使用Vega-Lite图表模板(使用vega-embed)来控制正在显示的数据的各个方面。图表包含在定义大小的小部件中,并使用""autosize": {"type": "fit", "contains": "padding"}
控制图表大小。
其中一个图表给我带来了一些问题--一个堆叠的条形图,显示了一些按公司分组的时间计数。在少数情况下,数据中有太多公司被带入仪表板,导致图例被切断。例如,only ~25 of the 50+ legend entries showing
有什么方法可以让这个图例更有用吗?我正在使用工具提示,这在某种程度上是有用的,但除了禁用图例(被产品经理拒绝)之外,我对如何继续操作感到困惑。我试着把一些条件逻辑放在一起,这样如果distinct计数>= 25,那么"legend": {"columns": 2}
,但没有任何运气来使它工作。
有没有人对同时适用于25+图例条目和5的通用解决方案有什么想法?让图例可以滚动将是理想的解决方案,同样,限制图例条目的数量(rest绑定到other
中)也是可行的替代方案,但我不知道在vega-lite中该如何做。
提前感谢!
另外,我不是一名web开发人员,只是一名分析师,负责编写vega-lite规范,所以很抱歉,我缺乏关于它如何部署的技术细节!
发布于 2019-10-11 17:40:34
您可以在相关编码的legend
参数中指定列数。例如:
import pandas as pd
import numpy as np
import altair as alt
np.random.seed(4567)
df = pd.DataFrame({
'x': np.random.randn(100),
'y': np.random.randn(100),
'category': np.random.choice(list('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 100)
})
alt.Chart(df).mark_point().encode(
x='x',
y='y',
color=alt.Color('category', legend=alt.Legend(columns=3))
)
https://stackoverflow.com/questions/58344791
复制相似问题