1,如何画数据的直方图
使用到的数据集是titanic乘客数据集。
首先,导包。
import numpy as np
import pandas as pd
import matplotlib. pyplot as pit
import matplotlib.mlab as mlab
开始绘制主体(一元直方图)
# 设置文本字孙
plt.rcParams['font.sans-serif'] = [u'simHei']
# 设置显示负号
plt.rcParams['axes.unicode_minus'] = False
# 读取数据集
titanic pd.read_csv('titanic_train.csv')
# 检查空年龄的数据
any(titanic.Age.isnull())
# 删除空的
titanic.dropna(subset = ['Age'], inplace = True)
# 设置图形的显示风格
plt.style.use('ggplot')
# 开始绘图(乘客年龄的频率直方图)
plt.hist(titanic.Age,# 绘图用的数据
bins = 20,# 图中的条形数有20个(也就将数据平均分成2份)
color = 'steelblue',# 填充色(也可以用RGB数据》
edgecolor = 'K',# 边界色
label = '直方图'# 标题
)
主要是这个hist()函数,它包含了很多参数,这里一一罗列出来:plt.hist(x, bins=10, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype=‘bar’, align=‘mid’, orientation=‘vertical’, rwidth=None, log=False, color=None, label=None, stacked=False)
x:指定要绘制直方图的数据;
bins:指定直方图条形的个数;
range:指定直方图数据的上下界,默认包含绘图数据的最大值和最小值;
normed:是否将直方图的频数转换成频率;
weights:该参数可为每一个数据点设置权重;
cumulative:是否需要计算累计频数或频率;
bottom:可以为直方图的每个条形添加基准线,默认为0;
histtype:指定直方图的类型,默认为bar,除此还有’barstacked’, ‘step’, ‘stepfilled’;
align:设置条形边界值的对其方式,默认为mid,除此还有’left’和’right’;
orientation:设置直方图的摆放方向,默认为垂直方向;
rwidth:设置直方图条形宽度的百分比;
log:是否需要对绘图数据进行log变换;
color:设置直方图的填充色;
label:设置直方图的标签,可通过legend展示其图例;
stacked:当有多个数据时,是否需要将直方图呈堆叠摆放,默认水平摆放;
设置边角以及展示:
# 设置垫标轴标签和标题
plt.tit1e('乘客年龄直方图')
p1t.xlabe1('年龄')
p1t.ylabe1('人数')
# 去除顶部和右边界的刻度
plt.tick_params(top = 'off', right = 'off')
# 显示图例
pit.legend()
# 展示
plt.show()
效果:

2,在上一个案例的基础上正态分布曲线和核密度曲线
目的就是比较两条曲线的吻合度,越吻合就说明数据越近似于正态分布。
绘制主体部分:
# 正态分布图
plt.hist(tit

最低0.47元/天 解锁文章
167

被折叠的 条评论
为什么被折叠?



