我正在用PYTHON构建一个放射状图表,但不能根据类别值对曲线图的值进行排序.我已经try 在域中对df和force进行排序,并在牛郎星代码中进行排序,但无法获得所需的结果.我做错了什么?

radial plot

以下是我当前的数据帧示例:

index da_tipo_servicio_salud categoria porcentaje rubro
57 En ambos, público y privado Menos de $200 pesos 44.44444444444444 Transporte
36 En ambos, público y privado Menos de $200 pesos 7.142857142857142 Medicamentos
15 En ambos, público y privado Menos de $200 pesos 3.571428571428571 Citas médicas
48 En ambos, público y privado Entre $200 y $500 pesos 29.629629629629626 Transporte

以及我正在使用的牛郎星代码:


orden_monto = ['Menos de $200 pesos', 'Entre $200 y $500 pesos', 'Entre $500 y $800 pesos', 'Entre $800 y $1,000 pesos', 'Entre $1,000 y $1,500 pesos', 'Entre $1,500 y $2,000 pesos', 'Más de $2,000 pesos']

base = alt.Chart(df_combinado_orden_ambos).transform_filter(
    alt.datum.rubro == 'Medicamentos'
).encode(
    theta=alt.Theta(field='porcentaje', type='quantitative', stack=True),
    radius=alt.Radius(field='porcentaje', type='quantitative', scale=alt.Scale(type='sqrt', zero=True, rangeMin=100)),
    color=alt.Color('categoria:N', scale=alt.Scale(scheme='blues', domain=orden_monto), sort=orden_monto) 
).properties(
    title={
        'text': ['Distribución porcentual por categoría'],
        'subtitle': ['Medicamentos'],
        'anchor': 'start',
        'offset': 20
    }
)

c1 = base.mark_arc(innerRadius=20, cornerRadius=5, stroke="#fff")
c2 = base.mark_text(radiusOffset=25).encode(text=alt.Text('porcentaje:Q', format='.0f'))

final_chart = c1 + c2
final_chart.display()

推荐答案

try 使用order编码并设置order='categoria'.

Python相关问答推荐

如何根据另一列值用字典中的值替换列值

使用plotnine和Python构建地块

具有多个选项的计数_匹配

将特定列信息移动到当前行下的新行

如何检测背景有噪的图像中的正方形

当使用keras.utils.Image_dataset_from_directory仅加载测试数据集时,结果不同

比较2 PD.数组的令人惊讶的结果

如何在给定的条件下使numpy数组的计算速度最快?

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

在np数组上实现无重叠的二维滑动窗口

我如何根据前一个连续数字改变一串数字?

如何在turtle中不使用write()来绘制填充字母(例如OEG)

在www.example.com中使用`package_data`包含不包含__init__. py的非Python文件

找到相对于列表索引的当前最大值列表""

为什么调用函数的值和次数不同,递归在代码中是如何工作的?

为什么我的sundaram筛这么低效

如何根据rame中的列值分别分组值

仅使用预先计算的排序获取排序元素

两个名称相同但值不同的 Select 都会产生相同的值(discord.py)

将标签与山脊线图对齐