Python Matplotlib数据可视化 绘制箱形图、散点图和直方图 您所在的位置:网站首页 箱形图的优缺点 Python Matplotlib数据可视化 绘制箱形图、散点图和直方图

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

2024-03-22 05:21| 来源: 网络整理| 查看: 265

文章目录

Python中可以通过matplotlib模块的pyplot子库来完成绘图。Matplotlib可用于创建高质量的图表和图形,也可以用于绘制和可视化结果。matplotlib是Python优秀的数据可视化第三方库,matplotlib.pyplot是绘制种类可视化图形的命令子库,相当于快捷方式 import matplotlib.pyplot as plt.

本文用python对一批运动员数据进行操作,读取数据、数据预处理、matplotlib数据可视化,熟悉用python进行数据分析和可视化的基本方法,并绘制箱形图、散点图和直方图。

数据集部分截图如下:

1. 绘制箱形图

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

使用箱形图展示出不同技术等级 (Skill_Moves) 的运动员的评分 (Rating) 分布情况,即横轴为运动员的技术等级,纵轴为评分。

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()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()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 CSDN:https://yetingyun.blog.csdn.net/ 本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。 觉得文章对你有帮助、让你有所收获的话,期待你的点赞呀,不足之处,也可以在评论区多多指正。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有