首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制牛市的1:8属性

绘制牛市的1:8属性
EN

Stack Overflow用户
提问于 2022-11-08 19:41:30
回答 2查看 37关注 0票数 1

如何使用altair绘制1:8属性的图表?这里是数据集的链接。我想为各种属性绘制一个交互式的mark_point()图,比如新鲜的、冻结的等等,考虑到区域和通道作为过滤器。X轴应该有属性,y轴有计数.

交互是基于区域和渠道来显示用户从分销商那里购买的价值。

我无法在一张图上绘制这8个属性。我试着把df转换成字典,然后用它来绘制图表。但没成功。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-08 21:16:38

我想这就是牛郎星的限制。你不能把所有的属性结合在一起。为此,您将需要matplotlib。希望这能有所帮助。!!

票数 0
EN

Stack Overflow用户

发布于 2022-11-09 04:56:43

  1. 您可以创建两个过滤器:一个用于区域,另一个用于通道,并将它们与and操作符组合起来过滤数据。这就给出了满足过滤器要求的dataframe子集。
  2. 在筛选之后,可以通过传递属性的列名来应用transform_fold。您可以将其看作是一种新的具有两列的dataframe:key将包含列名,而value将具有相应的值。
  3. 现在,您可以简单地使用key作为X轴变量,使用value作为Y轴变量。
代码语言:javascript
复制
reg_dropdown = alt.binding_select(options=list(df.Region.unique()))
reg_selection = alt.selection_single(fields=['Region'], bind=reg_dropdown, name='Select Region')

chn_dropdown = alt.binding_select(options=list(df.Channel.unique()))
chn_selection = alt.selection_single(fields=['Channel'], bind=chn_dropdown, name='Select Channel')

alt.Chart(df).transform_fold(
    ['Fresh', 'Milk', 'Grocery','Frozen', 'Detergents_Paper','Delicassen'],
).mark_point().encode(
    x='key:N',
    y='value:Q',
    detail ='key:N',
).add_selection(
    reg_selection, chn_selection
).transform_filter(
    reg_selection & chn_selection
).properties(width=300)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74366293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档