Барплот из числовых категориальных данных числа наблюдений, упорядоченных численно в matplotlib - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть числовые категориальные данные в кадре данных, которые я хочу запретить на графике и в порядке возрастания значения.Я могу легко сделать это в морском пороге, но не могу понять, как заказать его в пандах или матплотлиб.Вот код, как я уже сказал, сюжет о морской колонне упорядочен правильно, но сюжет с пандами - нет.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame({
        'category':['blue','green','red','blue','green','red','blue','green','red','violet'],
        'income':[15,1,4,5,3,2.5,3.4,4.4,12,1.6],
})
print(df)
df['income_cat'] = np.ceil(df["income"]/1.5)
df["income_cat"].where(df["income_cat"]<5,5.0,inplace=True)
df['income_cat'].value_counts().plot(kind='bar',sort_columns=True)
sns.catplot(x='income_cat',kind='count',data=df)
plt.show()

Также приветствуются любые другие предложения, чтобы сделать сюжет более «осмысленным».

Ответы [ 2 ]

1 голос
/ 28 сентября 2019

Вы можете попробовать:

df['income_cat'].value_counts().sort_index().plot(kind='bar')

Результат:

enter image description here

Надеюсь, это поможет.

1 голос
/ 28 сентября 2019

Полагаю, вы хотите упорядочить бары по значению индекса.Это может быть достигнуто с помощью sort_index():

df['income_cat'].value_counts().sort_index().plot(kind='bar',sort_columns=True)
...