文章目录
Python中可以通过matplotlib模块的pyplot子库来完成绘图。Matplotlib可用于创建高质量的图表和图形,也可以用于绘制和可视化结果。matplotlib是Python优秀的数据可视化第三方库,matplotlib.pyplot是绘制种类可视化图形的命令子库,相当于快捷方式 import matplotlib.pyplot as plt.
本文用python对一批运动员数据进行操作,读取数据、数据预处理、matplotlib数据可视化,熟悉用python进行数据分析和可视化的基本方法,并绘制箱形图、散点图和直方图。
数据集部分截图如下:
1. 绘制箱形图
箱线图,又称箱形图 (boxplot) 或盒式图,不同于一般的折线图、柱状图或饼图等传统图表,只是数据大小、占比、趋势等等的呈现,其包含一些统计学的均值、分位数、极值等等统计量,因此,该图信息量较大,不仅能够分析不同类别数据平均水平差异(需在箱线图中加入均值点),还能揭示数据间离散程度、异常值、分布差异等等。
使用箱形图展示出不同技术等级 (Skill_Moves) 的运动员的评分 (Rating) 分布情况,即横轴为运动员的技术等级,纵轴为评分。
代码语言:txt复制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) 构成的散点图
代码语言:txt复制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)分布
代码语言:txt复制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/ 本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。 觉得文章对你有帮助、让你有所收获的话,期待你的点赞呀,不足之处,也可以在评论区多多指正。