import pandas as pd
anscombe = pd.read_csv('data/anscombe.csv')
anscombe # 查看数据
><font color = 'red'>显示结果:</font>
>
>```shell
> dataset x y
>0 I 10.0 8.04
>1 I 8.0 6.95
>2 I 13.0 7.58
>3 I 9.0 8.81
>4 I 11.0 8.33
>5 I 14.0 9.96
>6 I 6.0 7.24
>7 I 4.0 4.26
>8 I 12.0 10.84
>9 I 7.0 4.82
>10 I 5.0 5.68
>11 II 10.0 9.14
>12 II 8.0 8.14
>13 II 13.0 8.74
>14 II 9.0 8.77
>15 II 11.0 9.26
>16 II 14.0 8.10
>17 II 6.0 6.13
>18 II 4.0 3.10
>19 II 12.0 9.13
>20 II 7.0 7.26
>21 II 5.0 4.74
>22 III 10.0 7.46
>23 III 8.0 6.77
>24 III 13.0 12.74
>25 III 9.0 7.11
>26 III 11.0 7.81
>27 III 14.0 8.84
>28 III 6.0 6.08
>29 III 4.0 5.39
>30 III 12.0 8.15
>31 III 7.0 6.42
>32 III 5.0 5.73
>33 IV 8.0 6.58
>34 IV 8.0 5.76
>35 IV 8.0 7.71
>36 IV 8.0 8.84
>37 IV 8.0 8.47
>38 IV 8.0 7.04
>39 IV 8.0 5.25
>40 IV 19.0 12.50
>41 IV 8.0 5.56
>42 IV 8.0 7.91
>43 IV 8.0 6.89
>```
total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3
3 23.68 3.31 Male No Sun Dinner 2
4 24.59 3.61 Female No Sun Dinner 4
3.1 单变量
在统计学属于中,‘单变量’(univariate)指单个变量
3.1.1 直方图
直方图是观察单个变量最常用的方法。这些值是经过”装箱”(bin)处理的
直方图会将数据分组后绘制成图来显示变量的分布状况
fig = plt.figure()
axes1 = fig.add_subplot(1,1,1)
axes1.hist(tips['total_bill'],bins = 10)
axes1.set_title('Histogram of Total Bill')
axes1.set_xlabel('total bill')
axes1.set_ylabel('freq')
显示结果:
3.2 双变量
双变量(bivariate)指两个变量
3.2.1 散点图
散点图用于表示一个连续变量随另一个连续变量的变化所呈现的大致趋势
fig = plt.figure()
axes1 = fig.add_subplot(1,1,1)
axes1.scatter(tips['total_bill'],tips['tip'])
axes1.set_title('Scatterplot of Total Bill vs Tip')
axes1.set_xlabel('Total Bill')
axes1.set_ylabel('Tip')
显示结果:
3.3 多变量数据
二维平面可以用来展示两个变量的数据,如果是多变量,比如添加一个性别变量,可以通过不同的颜色来表示
还可以通过圆点的大小来区分变量的不同,但如果变量的大小区别不大,可能通过圆点大小来区分效果不是很好
def recode_sex(sex):
if sex =='Female':
return 0
else:
return 1
tips['sex_color'] = tips['sex'].apply(recode_sex)
fig = plt.figure()
axes1 = fig.add_subplot(1,1,1)
scatter = axes1.scatter(x = tips['total_bill'],y=tips['tip'],s = tips['size']*10,c=tips['sex_color'],alpha = 0.5)
legend1 = axes1.legend(*scatter.legend_elements(), loc="upper left", title="性别") # 设置图例
axes1.add_artist(legend1) # 添加图例
axes1.set_title('Total Bill vs Tip Colored by Sex and Sized by Size')
axes1.set_xlabel('total Bill')
axes1.set_ylabel('tip')