python画图y轴在右侧_python – 如何为我的绘图中的每一行的Y轴标签排序不同?...

博客内容讲述了如何使用Altair库在条形图中根据标签的值对子图进行排序和过滤。示例展示了如何根据标签的平均值对Y轴进行排序,并通过条件颜色标记选择器来改变数据的展示。同时,指出了当需要按每个子图的标签值单独排序时,需要手动过滤数据并组合图表的方法。
摘要由CSDN通过智能技术生成

我希望每个子图根据定义条形大小的值对标签进行排序.

见示例图片:

8vtBU.png

data = {'label': ['A','A','B','B'], 'variable': ['x', 'y', 'x', 'y'], 'value':[2,4,3,1]}

df = pd.DataFrame.from_dict(data)

selector = alt.selection_single(empty='all', fields=['label'])

bar = alt.Chart(df,title='My Plot').mark_bar().encode(

alt.Y('label', sort=alt.EncodingSortField(field="value", op="mean", order='ascending'), axis=alt.Axis(title='Label')),

alt.X('value:Q', axis=alt.Axis(format='%', title='Value')),

alt.Row('variable', title='Variable'),

color=alt.condition(selector, alt.value('orange'), alt.value('lightgray')),

tooltip=[alt.Tooltip('label', title='Label'),

alt.Tooltip('value:Q', format='.2%', title='Value'),]

).add_selection(selector)

chart = (bar).properties(width=700, height=300)

display(chart)

在示例中,标签(A,B)现在根据这些标签的所有值的平均值进行排序.我希望订单为标签X的B-A和标签Y的A-B(因此根据Altair图的行中显示的标签值降序).

最佳答案 通过设计构面图共享它们的轴,这意味着当您对列进行排序时,您将按整个数据集对两个轴进行排序.

如果您希望每个图表单独对其轴进行排序,我认为唯一的方法是手动过滤数据集并连接图表.这是你可以这样做的一种方式:

import altair as alt

import pandas as pd

df = pd.DataFrame({'label': ['A','A','B','B'],

'variable': ['x', 'y', 'x', 'y'],

'value':[2,4,3,1]})

base = alt.Chart(df).mark_bar().encode(

alt.Y('label', axis=alt.Axis(title='Label'),

sort=alt.EncodingSortField(field="value", op="sum", order='descending')),

alt.X('value:Q', axis=alt.Axis(format='d', title='Value')),

tooltip=[alt.Tooltip('label', title='Label'),

alt.Tooltip('value:Q', format='d', title='Value'),],

)

alt.vconcat(

base.transform_filter("datum.variable == 'x'").properties(title='x'),

base.transform_filter("datum.variable == 'y'").properties(title='y'),

title='My Chart'

)

cbwmV.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值