课程学习来源:b站up:【蚂蚁学python】
 【课程链接:【【数据可视化】Python数据图表可视化入门到实战】】
 【课程资料链接:【链接】】
Python绘制箱形图分析北京天气数据
箱形图
箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况的统计图。
箱形图的图形组成
对于一组数字,先将其从小到达排列,然后计算图中元素:
 
I Q R : 即分位数范围 IQR:即分位数范围 IQR:即分位数范围
小于下边缘或大于上边缘的值,为异常值
箱形图的价值
- 直观明了地识别数据中的异常值
- 利用箱线图判断数据的偏态和尾重:一般来说,盒子不会位于正中间,可能会偏下或者偏上,那么我们能够看到数据的分布是偏小还是偏大的
- 利用箱线图比较几批数据的形状
import pandas as pd
import seaborn as sns
sns.set(style="whitegrid")
sns.set(rc={'figure.figsize':(11.7,8.27)})
实例目标:对比北京2019年天气数据中,四个季度的温度分布对比
1.读取北京天气数据
df = pd.read_csv("../DATA_POOL/PY_DATA/ant-learn-visualization-master/datas/beijing_tianqi/beijing_tianqi_2019.csv")df.head(3)
| ymd | bWendu | yWendu | tianqi | fengxiang | fengli | aqi | aqiInfo | aqiLevel | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 2019-01-01 | 1℃ | -10℃ | 晴~多云 | 西北风 | 1级 | 56 | 良 | 2 | 
| 1 | 2019-01-02 | 1℃ | -9℃ | 多云 | 东北风 | 1级 | 60 | 良 | 2 | 
| 2 | 2019-01-03 | 2℃ | -7℃ | 霾 | 东北风 | 1级 | 165 | 中度污染 | 4 | 
2.把温度列从字符串变成数字
# 把最高温度列,从数字+℃的形式变成纯数字
df["bWendu"] = df["bWendu"].str.replace('℃', '').astype(float)
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 365 entries, 0 to 364
Data columns (total 9 columns):#   Column     Non-Null Count  Dtype  
---  ------     --------------  -----  0   ymd        365 non-null    object 1   bWendu     365 non-null    float642   yWendu     365 non-null    object 3   tianqi     365 non-null    object 4   fengxiang  365 non-null    object 5   fengli     365 non-null    object 6   aqi        365 non-null    int64  7   aqiInfo    365 non-null    object 8   aqiLevel   365 non-null    int64  
dtypes: float64(1), int64(2), object(6)
memory usage: 25.8+ KB
3.根据日期添加季度数字列
# 获取季度
df["quarter"] = pd.to_datetime(df["ymd"]).dt.quarterdf.head(6)
| ymd | bWendu | yWendu | tianqi | fengxiang | fengli | aqi | aqiInfo | aqiLevel | quarter | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2019-01-01 | 1.0 | -10℃ | 晴~多云 | 西北风 | 1级 | 56 | 良 | 2 | 1 | 
| 1 | 2019-01-02 | 1.0 | -9℃ | 多云 | 东北风 | 1级 | 60 | 良 | 2 | 1 | 
| 2 | 2019-01-03 | 2.0 | -7℃ | 霾 | 东北风 | 1级 | 165 | 中度污染 | 4 | 1 | 
| 3 | 2019-01-04 | 2.0 | -7℃ | 晴 | 西北风 | 2级 | 50 | 优 | 1 | 1 | 
| 4 | 2019-01-05 | 0.0 | -8℃ | 多云 | 东北风 | 2级 | 29 | 优 | 1 | 1 | 
| 5 | 2019-01-06 | 3.0 | -7℃ | 多云 | 东南风 | 1级 | 84 | 良 | 2 | 1 | 
4.调用seaborn绘制boxplot
ax = sns.boxplot(x="quarter",y="bWendu",data=df)
 