Python Matplotlib数据可视化 绘制箱形图、散点图和直方图

广告位

Python中可以通过matplotlib模块的pyplot子库来完成绘图。Matplotlib可用于创建高质…

Python中可以通过matplotlib模块的pyplot子库来完成绘图。Matplotlib可用于创建高质量的图表和图形,也可以用于绘制和可视化结果。matplotlib是Python优秀的数据可视化第三方库,matplotlib.pyplot是绘制种类可视化图形的命令子库,相当于快捷方式 import matplotlib.pyplot as plt.
本文用python对一批运动员数据进行操作,读取数据、数据预处理、matplotlib数据可视化,熟悉用python进行数据分析和可视化的基本方法,并绘制箱形图、散点图和直方图。

数据集部分截图如下:
Python  Matplotlib数据可视化   绘制箱形图、散点图和直方图

1. 绘制箱形图

箱线图,又称箱形图 (boxplot) 或盒式图,不同于一般的折线图、柱状图或饼图等传统图表,只是数据大小、占比、趋势等等的呈现,其包含一些统计学的均值、分位数、极值等等统计量,因此,该图信息量较大,不仅能够分析不同类别数据平均水平差异(需在箱线图中加入均值点),还能揭示数据间离散程度、异常值、分布差异等等。

使用箱形图展示出不同技术等级 (Skill_Moves) 的运动员的评分 (Rating) 分布情况,即横轴为运动员的技术等级,纵轴为评分。
Python  Matplotlib数据可视化   绘制箱形图、散点图和直方图
Python  Matplotlib数据可视化   绘制箱形图、散点图和直方图

import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl  df = pd.read_csv('soccer.csv', encoding='gbk') labels = [f'等级{i}' for i in ['一', '二', '三', '四', '五']]  data1 = df[df['Skill_Moves'] == 1]['Rating'] data2 = df[df['Skill_Moves'] == 2]['Rating'] data3 = df[df['Skill_Moves'] == 3]['Rating'] data4 = df[df['Skill_Moves'] == 4]['Rating'] data5 = df[df['Skill_Moves'] == 5]['Rating']  # 设置中文显示 mpl.rcParams['font.family'] = 'SimHei' # 设置图形显示风格 plt.style.use('ggplot') fig, ax = plt.subplots() box_plot = ax.boxplot((data1, data2, data3, data4, data5), labels=labels,             boxprops={'color': 'black'}, showmeans=True, patch_artist=True,             )  colors = ['pink', 'blue', 'green', 'yellow', 'red']  # 填充箱子颜色 for patch, color in zip(box_plot['boxes'], colors):     patch.set(facecolor=color)  # 设置箱子两端线的属性 for whisker in box_plot['whiskers']:     whisker.set(color='purple', linewidth=2) # 设置顶端和末端线条的属性 for cap in box_plot['caps']:     cap.set(color='g', linewidth=3) # 设置中位数的属性 for median in box_plot['medians']:     median.set(color='black', linewidth=3)  plt.xlabel('技术等级') plt.ylabel('评分') plt.title('不同技术等级的运动员评分分布箱形图')  plt.show()  

Python  Matplotlib数据可视化   绘制箱形图、散点图和直方图

2. 绘制散点图

绘制年龄 (Age) 与评分 (Rating) 构成的散点图

import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl  df= pd.read_csv('soccer.csv', encoding='gbk') age, rating = list(df['Age']), list(df['Rating'])  # 设置中文显示 mpl.rcParams['font.family'] = 'SimHei' # 设置图形显示风格 plt.style.use('ggplot') # 设置大小  像素 plt.figure(figsize=(9, 6), dpi=100)  # 绘制散点图 plt.scatter(age, rating)  # 添加描述信息 plt.title('运动员年龄与评分散点图') plt.xlabel('年龄') plt.ylabel('评分') plt.show() 

Python  Matplotlib数据可视化   绘制箱形图、散点图和直方图

3. 绘制直方图

利用直方图查看运动员的年龄(Age)分布

import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl  ages = list(pd.read_csv('soccer.csv', encoding='gbk')['Age']) ages.sort()  # 设置中文显示 mpl.rcParams['font.family'] = 'SimHei' # 设置图形显示风格 plt.style.use('ggplot') plt.figure(figsize=(9, 6), dpi=100)  bin_width = 1  # 设置组距   整除 num_bin = (max(ages) - min(ages)) // bin_width    # 组数  # 绘制直方图  x:指定要绘制直方图的数据 # bins:指定直方图条形的个数  color:设置直方图的填充色    edgecolor:指定直方图的边界色 plt.hist(x=ages, bins=num_bin, color='blue', edgecolor='k', label='直方图')   # 为直方图呈现标签 plt.xticks(range(20, 50, 5))     # 设置x轴刻度  # 添加描述信息 plt.xlabel('年龄区间') plt.ylabel('频数') plt.title('年龄频数分布直方图')  plt.legend() plt.show()  

Python  Matplotlib数据可视化   绘制箱形图、散点图和直方图

墨遥

关于作者: 墨遥

为您推荐