我正在仪表板上使用Vega-Lite图表模板(使用vega-embed),该模板包含用于控制所显示数据各个方面的过滤器。图表包含在已定义大小的小部件中,并使用""autosize": {"type": "fit", "contains": "padding"}
控制图表的大小。
其中一张图表引起了我一些问题-堆积的条形图显示了按公司分组的时间范围内的一些计数。在少数情况下,将数据带入仪表板的公司太多,导致图例被切断。例如。 only ~25 of the 50+ legend entries showing
是否有某种方法可以使此图例更加有用?我正在使用某种方式的工具提示,但是没有仅仅禁用图例(产品经理拒绝),我对如何继续感到困惑。我试图将一些条件逻辑组合在一起,以便如果非重复计数> = 25则"legend": {"columns": 2}
,但是在完成这项工作时没有任何运气。
有人对通用解决方案有什么想法,该解决方案适用于25个以上图例条目和5个图例条目的实例吗?使图例可滚动将是理想的解决方案,同样,限制图例条目的数量(将其余部分合并到other
中)也是我想过但不知道如何做的可行选择。素食主义者。
谢谢!
P.S。我不是网络开发人员,而是一名分析师,他接手了编写Vega-lite规范的工作,因此对缺乏有关其部署方式的技术细节深表歉意!
答案 0 :(得分:0)
您可以在相关编码的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))
)