python数据分析的一般步骤_Python数据分析之seaborn常用方法

Python数据分析之seaborn常用方法

%matplotlib inline

import matplotlib as mpl

from matplotlib import pyplot as plt

import seaborn as sns

import numpy as np

x = np.random.normal(size=100)

sns.distplot(x, kde=True)

#.分布的集中趋势,反映数据向其中心值靠拢或聚集的程度

b_1_201803051912474830.jpg

mean, cov = [0, 1], [(1, .5), (.5, 1)]

data = np.random.multivariate_normal(mean, cov, 200)

df = pd.DataFrame(data, columns=["x", "y"])

x, y = np.random.multivariate_normal(mean, cov, 1000).T

with sns.axes_style("ticks"):

sns.jointplot(x=x, y=y, kind="hex")

#能够更加直观反映点的分布情况

b_1_201803051912481631.jpg

sns.jointplot(x="x", y="y", data=df, kind="kde")

#直接拟合概率密度函数

b_1_201803051912486145.jpg

# your code

%matplotlib inline

import matplotlib as mpl

from matplotlib import pyplot as plt

import seaborn as sns

data = sns.load_dataset("flights")

data.head()

# 年份,月份,乘客数

b_1_201803051912485173.jpg

# 分析年度乘客总量变化情况(折线图)

plt.rcParams["figure.figsize"] = (12,8)

sns.pointplot(x="year", y="passengers", data=data)

plt.title("The change number of passengers")

plt.grid(True)

b_1_201803051912489688.jpg

# 分析乘客在一年中各月份的分布(柱状图)

sns.set(color_codes=True)

sns.barplot(x="month", y="passengers", hue='year', data=data)

plt.title("The number of passengers every month")

b_1_201803051912492004.jpg

data = sns.load_dataset("iris")

data.head()

b_1_201803051912491032.jpg

#萼片(sepal)和花瓣(petal)的大小关系(散点图)

data.loc[:,'sepal'] = data['sepal_length'] * data['sepal_width']

data.loc[:,'petal'] = data['petal_length'] * data['petal_width']

sns.jointplot(x="sepal", y="petal", data=data)

plt.title("The relation of sepal and petal")

b_1_201803051912498088.jpg

#不同种类鸢尾花萼片和花瓣大小的分布情况(柱状图或者箱式图)

sns.boxplot(x='species',y='petal', hue="species",data=data)

b_1_201803051912498589.jpg

#不同种类(species)鸢尾花萼片和花瓣的大小关系(分类散点子图)

sns.lmplot(x="sepal", y="petal", hue="species", data=data)

b_1_201803051912498118.jpg

#不同种类(species)鸢尾花萼片和花瓣的大小关系(分类散点子图)

sns.stripplot(x='sepal', y='petal', hue='species', data=data)

plt.title(u'不同种类鸢尾花萼片和花瓣的大小关系',fontsize=20)

plt.xticks(rotation=60)

b_1_201803051912493917.jpg

b_1_201803051912494418.jpg

#小费和总消费之间的关系(散点图)

sns.jointplot(x="tip", y="total_bill", data=data)

b_1_201803051912501689.jpg

#男性顾客和女性顾客,谁更慷慨(分类箱式图)

sns.boxplot(x="sex", y="tip", data=data)

#男性普遍更慷慨一些

b_1_201803051912509717.jpg

#抽烟与否是否会对小费金额产生影响(分类箱式图)

sns.boxplot(x="smoker", y="tip", data=data)

#抽烟的人更慷慨些

b_1_201803051912503476.jpg

#工作日和周末,什么时候顾客给的小费更慷慨(分类箱式图)

sns.boxplot(x="day", y="tip", data=data)

b_1_201803051912508274.jpg

#午饭和晚饭,哪一顿顾客更愿意给小费(分类箱式图)

sns.boxplot(x="time", y="tip", data=data)

b_1_201803051912503789.jpg

#就餐人数是否会对慷慨度产生影响(分类箱式图)

sns.boxplot(x="size", y="tip", data=data)

b_1_201803051912504290.jpg

#性别+抽烟的组合因素对慷慨度的影响

sns.barplot(x="sex", y="tip", hue="smoker", data=data)

b_1_201803051912509089.jpg

b_1_201803051912506360.jpg

def pile_bar(data,pile_col,clsf_col):

data1 = data.groupby([pile_col,clsf_col])['survived'].count()

data1 = data1.unstack()

data1 = data1/data1.sum()

x_data = range(len(data1.columns))

q = pd.Series([0 for i in x_data])

bottom = q

colors = ['#539caf', '#7663b0','darkorange']

_,axe = plt.subplots()

for c,p in zip(colors,data1.index):

bottom +=q

plt.bar(x_data, data1.loc[p],bottom=bottom,label=p,

width=0.15*len(data1.columns),color=c)

q = data1.loc[p].reset_index()[p]

plt.xlabel(data1.columns.name,fontsize=20)

plt.xticks(x_data,data1.columns, fontsize=15)

plt.ylabel('passengers survived',fontsize=20)

plt.legend(fontsize=15)

axe.spines['top'].set_color(None)

axe.spines['right'].set_color(None)

pile_bar(data,'alive','class')

b_1_201803051912513632.jpg

#不同仓位等级中幸存和遇难的乘客比例(堆积柱状图)

data['totle'] = 1

fig, ax = plt.subplots(figsize = (8,5))

sns.barplot(x = "pclass", y = "totle", data = data, color = "r", ax = ax)

sns.barplot(x = "pclass", y = "survived", data = data, color = "b", ax = ax)

b_1_201803051912517362.jpg

#不同性别的幸存比例(堆积柱状图)

fig, ax = plt.subplots(figsize = (8,5))

sns.barplot(x = "sex", y = "totle", data = data, color = "r", ax = ax)

sns.barplot(x = "sex", y = "survived", data = data, color = "b", ax = ax)

plt.ylim(0, 1.3)

b_1_201803051912511405.jpg

#幸存和遇难乘客的票价分布(分类箱式图)

sns.boxplot(x="survived", y="fare", data=data)

plt.title('The relation of the fare and the survived')

b_1_201803051912519432.jpg

#不同上船港口的乘客仓位等级分布(分组柱状图)

sns.barplot(x="class", y="survived", hue="embarked", data=data)

b_1_201803051912519933.jpg

#单独乘船与否和幸存之间有没有联系(堆积柱状图或者分组柱状图)

sns.countplot(x="survived", hue="alone", data=data)

b_1_201803051912517205.jpg

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值