#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].
Все еще не уверен, возможно ли объединить столбцы.