Использование pd.cut для создания ячеек для графика, но значения ячеек выводятся не так, как ожидалось

#pandas #matplotlib #seaborn

#pandas #matplotlib #seaborn

Вопрос:

Вот код, который я запускаю:

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

titanic = sns.load_dataset("titanic") 
y =titanic.groupby([titanic.fare//1,'sex']).survived.mean().reset_index()  #grouping by 'fare' rounded to an integer and 'sex' and then getting the survivability 

x =pd.cut(y.fare, (0,17,35,70,300,515)) #I'm not sure if my format is correct but this is how I cut up the fare values  


y['Fare_bins']= x   # adding the newly created bins to a new column "Fare_bins' in original dataframe.  



#graphing with seaborn


sns.set(style="whitegrid")
g = sns.factorplot(x='Fare_bins', y= 'survived', col = 'sex', kind ='bar' ,data= y,
           size=4, aspect =2.5 , palette="muted")
g.despine(left=True)
g.set_ylabels("Survival Probability")
g.set_xlabels('Fare')
plt.show()
  

Проблема, с которой я сталкиваюсь, заключается в том, что значения Fare_values отображаются как (0,17].
Левая сторона представляет собой круглую скобку, а правая сторона — квадратную скобку.
Если возможно, я хотел бы иметь что-то вроде этого:
(0-17) или [0-17]

Далее, кажется, что между каждым столбчатым графиком есть разрыв. Я ожидал, что они будут соединены. Представлены два графика, поэтому я не ожидаю, что столбцы будут объединены, но первые 5 столбцов (первый график) должны быть соединены, а последние 5 столбцов — друг с другом (второй график).

Как я могу решить эти две проблемы?

Ответ №1:

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

 x =pd.cut(y.fare, (0,17,35,70,300,515), labels = ('(0-17)', '(17-35)', '(35-70)', '(70-300)','(300-515)') ) 
  

Что касается скобок, показывающих группы fare_value,
согласно документации:

 right : bool, optional

Indicates whether the bins include the rightmost edge or not. If right == True (the default), then the bins [1,2,3,4] indicate (1,2], (2,3], (3,4].
  

Все еще не уверен, возможно ли объединить столбцы.