Saltar al contenido

Pedido de gráficos de barras Seaborn

Si encuentras algún error en tu código o proyecto, recuerda probar siempre en un ambiente de testing antes subir el código al trabajo final.

Solución:

puede usar el parámetro de orden para esto.

sns.barplot(x='Id', y="Speed", data=df, order=result['Id'])

Créditos a Wayne.

Ver el resto de su código.

Debe ordenar su marco de datos de la manera deseada y volver a indexarlo para crear un nuevo índice ascendente/descendente. Después de eso, puede trazar un gráfico de barras con índice como valores x. Luego establezca las etiquetas establecidas por la columna Dim de su marco de datos:

import matplotlib.pylab as plt
import pandas as pd
import seaborn as sns

dicti=('37':99943,'25':47228,'36':16933,'40':14996,'35':11791,'34':8030,'24' : 6319 ,'2'  :5055 ,'39' :4758 ,'38' :4611  )
pd_df = pd.DataFrame(list(dicti.items()))
pd_df.columns =["Dim","Count"]
print (pd_df)
# sort df by Count column
pd_df = pd_df.sort_values(['Count']).reset_index(drop=True)
print (pd_df)

plt.figure(figsize=(12,8))
# plot barh chart with index as x values
ax = sns.barplot(pd_df.index, pd_df.Count)
ax.get_yaxis().set_major_formatter(plt.FuncFormatter(lambda x, loc: ":,".format(int(x))))
ax.set(xlabel="Dim", ylabel='Count')
# add proper Dim values as x labels
ax.set_xticklabels(pd_df.Dim)
for item in ax.get_xticklabels(): item.set_rotation(90)
for i, v in enumerate(pd_df["Count"].iteritems()):        
    ax.text(i ,v[1], ":,".format(v[1]), color='m', va ='bottom', rotation=45)
plt.tight_layout()
plt.show()

ingrese la descripción de la imagen aquí

Prepare el marco de datos de modo que esté ordenado por la columna que desee.

Ahora pasa eso como un parámetro para funcionar.

import matplotlib.pylab as plt
import pandas as pd
import seaborn as sns

dicti=('37':99943,'25':47228,'36':16933,'40':14996,'35':11791,'34':8030,'24' : 6319 ,'2'  :5055 ,'39' :4758 ,'38' :4611  )
pd_df = pd.DataFrame(list(dicti.items()))
pd_df.columns =["Dim","Count"]

# Here the dataframe is already sorted if not use the below line
# pd_df = pd_df.sort_values('Count').reset_index()
# or 
# pd_df = pd_df.sort_values('Count',ascending=False).reset_index()

sns.barplot(x='Dim',y='Count',data=pd_df,order = pd_df['Dim'])`

ingrese la descripción de la imagen aquí

Te mostramos comentarios y valoraciones

Eres capaz de animar nuestro trabajo ejecutando un comentario o valorándolo te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *