Quantcast
Channel: Recent Questions - Stack Overflow
Viewing all articles
Browse latest Browse all 11781

how to arbitrarily sort the radial plot values in altair?

$
0
0

I'm building a radial chart in python but can't order the values of the plot based on the 'categoria' values. I already tried to sort the df and force through domain and sort in the altair code but can't get the desired result. What I'm doing wrong?

radial plot

Here's my current dataframe:

indexda_tipo_servicio_saludcategoriaporcentajerubro
57En ambos, público y privadoMenos de $200 pesos44.44444444444444Transporte
36En ambos, público y privadoMenos de $200 pesos7.142857142857142Medicamentos
15En ambos, público y privadoMenos de $200 pesos3.571428571428571Citas médicas
48En ambos, público y privadoEntre $200 y $500 pesos29.629629629629626Transporte
6En ambos, público y privadoEntre $200 y $500 pesos10.714285714285714Citas médicas
27En ambos, público y privadoEntre $200 y $500 pesos10.714285714285714Medicamentos
30En ambos, público y privadoEntre $500 y $800 pesos14.285714285714285Medicamentos
51En ambos, público y privadoEntre $500 y $800 pesos11.11111111111111Transporte
9En ambos, público y privadoEntre $500 y $800 pesos21.428571428571427Citas médicas
12En ambos, público y privadoEntre $800 y $1,000 pesos14.285714285714285Citas médicas
33En ambos, público y privadoEntre $800 y $1,000 pesos25.0Medicamentos
54En ambos, público y privadoEntre $800 y $1,000 pesos11.11111111111111Transporte
42En ambos, público y privadoEntre $1,000 y $1,500 pesos3.7037037037037033Transporte
0En ambos, público y privadoEntre $1,000 y $1,500 pesos35.714285714285715Citas médicas
21En ambos, público y privadoEntre $1,000 y $1,500 pesos21.428571428571427Medicamentos
45En ambos, público y privadoEntre $1,500 y $2,000 pesos0.0Transporte
24En ambos, público y privadoEntre $1,500 y $2,000 pesos14.285714285714285Medicamentos
3En ambos, público y privadoEntre $1,500 y $2,000 pesos10.714285714285714Citas médicas
60En ambos, público y privadoMás de $2,000 pesos0.0Transporte
39En ambos, público y privadoMás de $2,000 pesos7.142857142857142Medicamentos
18En ambos, público y privadoMás de $2,000 pesos3.571428571428571Citas médicas

and the altair code I'm using:

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 + c2final_chart.display()

Viewing all articles
Browse latest Browse all 11781

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>