Python案例教学之数据可视化,panda,numpy,Matplotlib库【第十课】

简介: 利用Matplotlib库,绘制出抛物线曲线图1.线为红色圆型点线图2.横坐标取值范围:[-10, 10],绘制点数503.坐标轴说明(x轴:x tick,y軕:voltage)4.图标题为抛物线示意图。

根据示例创建ndarray,并按要求完成操作

在这里插入图片描述

1.按要求进行切片操作

在这里插入图片描述

import numpy as np
arr1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr1[:2, 1:])
print(arr1[1:2, 0:2])
print(arr1[2:, 0:1])
print(arr1[:, 0:1])
# 将数组中的每个元素乘2后,按行和按列方式分别计算其最大值,打印输出结果
arr2 = arr1*2
print('按行方式分别计算其最大值:', arr2.max(1))
print('按列方式分别计算其最大值:', arr2.max(0))

2.将数组中的每个元素乘2后,按行和按列方式分别计算其最大值,打印输出结果

arr2 = arr1*2
print('按行方式分别计算其最大值:', arr2.max(1))
print('按列方式分别计算其最大值:', arr2.max(0))

利用Matplotlib库,绘制出抛物线曲线图

1.线为红色圆型点线图
2.横坐标取值范围:[-10, 10],绘制点数50
3.坐标轴说明(x轴:x tick,y軕:voltage)
4.图标题为抛物线示意图。

import matplotlib.pyplot as plt
import numpy as np
x = np. linspace(-10, 10, 50)     # x坐标采样点生成,[-10,10]区间,50个点
y = []
for i in x:
    a = i**2
    y.append(a)
plt.plot(x, y, 'ro--')    # 控制图形格式为红色圆形的虚线
plt.title("抛物线示意图")     # 设置图表标题
plt.xlabel("x tick")      # 设置x坐标轴标签
plt.ylabel("voltage")    # 设置y坐标轴标签
plt.rcParams['font.sans-serif'] = ['Kaiti']   # 用来正常显示中文(黑体)常用字体包括: Kaiti-楷体; FangSong-仿宋; Microsoft YaHei-微软雅黑
plt.rcParams['axes.unicode_minus'] = False    # 用来正常显示负号
plt.savefig("test", dpi=300)         # 保存图表
plt.show()

panda读取csv文件1并统计每个积分区间(每5分)人数分布,绘制图形

1.读取 CSV文件生成DataFrame

df = pd.read_csv('D:/luohu3.csv')
print(df)

2. 数据预处理

data = df.dropna(0)    # 删除所有包含空值的行或列
print(data.info())

3. 对数据进行离散化处理

通过describe()查看最大值最小值,来确定区间

x = data["积分分值"]
print(data.describe())       # 查看最大值与最小值
bins = np.arange(90, 126, 5)
score_bins = pd.cut(x, bins)    # 对数据进行离散化处理
print(score_bins)

4. 按积分分割区间进行分组统计

df1 = data.groupby(score_bins)["积分分值"].count()
print(df1)

5. 绘制图形

rot=0使横坐标的数据横过来

df1.plot(kind="bar", rot=0)    
plt.rcParams['font.sans-serif'] = ['Kaiti']   # 用来正常显示中文(黑体)常用字体包括: Kaiti-楷体; FangSong-仿宋; Microsoft YaHei-微软雅黑
plt.rcParams['axes.unicode_minus'] = False   # 显示负号
plt.show()

完整代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取 CSV文件生成DataFrame
df = pd.read_csv('D:/luohu3.csv')
print(df)

print(df.info())   # 获取 DataFrame 的摘要
print(df.head())     # 根据位置返回对象的前n行信息(默认值为5) ,用于快速测试数据集
print(df.describe())   # 生成描述性统计数据,总结数据集分布的集中趋势,分散和形状,不包括 NaN值。
# 数据预处理
data = df.dropna(0)    # 删除所有包含空值的行或列
print(data.info())
# data = df.drop_duplicates()
# print(data.info())

x = data["积分分值"]
print(data.describe())       # 查看最大值与最小值
bins = np.arange(90, 126, 5)
score_bins = pd.cut(x, bins)    # 对数据进行离散化处理
print(score_bins)

# 按积分分割区间进行分组统计
df1 = data.groupby(score_bins)["积分分值"].count()
print(df1)
# 绘制图形
df1.plot(kind="bar", rot=0)
plt.rcParams['font.sans-serif'] = ['Kaiti']   # 用来正常显示中文(黑体)常用字体包括: Kaiti-楷体; FangSong-仿宋; Microsoft YaHei-微软雅黑
plt.rcParams['axes.unicode_minus'] = False
plt.show()

在这里插入图片描述

2.按照"单位名称"分组统计每个单位的人数信息,将人数排名前10的单位和人数用柱状图表示出来。

前面几步和上一个基本相同,就不多说了。
特殊的就三步:

1.按单位名称进行分组统计

df1 = data.groupby(data['单位名称'])["单位名称"].count()

2.分组结果排序

df2 = df1.sort_values(ascending=False)

3.取排序结果的前10个数据,切片

df3 = df2[0:10]

完整代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取 CSV文件生成DataFrame
df = pd.read_csv('D:/luohu3.csv')
# print(df)

print(df.info())   # 获取 DataFrame 的摘要
# print(df.head())     # 根据位置返回对象的前n行信息(默认值为5) ,用于快速测试数据集
# print(df.describe())   # 生成描述性统计数据,总结数据集分布的集中趋势,分散和形状,不包括 NaN值。
# 数据预处理
data = df.dropna(0)    # 删除所有包含空值的行或列
print(data.info())
# data = df.drop_duplicates()
# print(data.info())

df1 = data.groupby(data['单位名称'])["单位名称"].count()  # 按单位名称进行分组统计
print(df1)
df2 = df1.sort_values(ascending=False)    # 分组结果排序
print(df2)
df3 = df2[0:10]   # 取排序结果的前10个数据
# 绘制图表
df3.plot(kind="bar", rot=0)
plt.rcParams['font.sans-serif'] = ['Kaiti']   # 用来正常显示中文(黑体)常用字体包括: Kaiti-楷体; FangSong-仿宋; Microsoft YaHei-微软雅黑
plt.rcParams['axes.unicode_minus'] = False
plt.show()

在这里插入图片描述

统计年龄分布情况(5岁的间隔统计),绘制出年龄分布图。

这个和第一个非常相似,难点在于需要将出生年月转化为年龄。

data = data.copy()
data['年龄'] = [dt.datetime.today().year - i.year for i in pd.to_datetime(data["出生年月"])] 

如果不添加data.copy()会报错

SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.Try using .loc[row_indexer,col_indexer] = value instead

完整代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import datetime as dt
# 读取 CSV文件生成DataFrame
df = pd.read_csv('D:/luohu3.csv')
print(df)

print(df.info())   # 获取 DataFrame 的摘要
print(df.head())     # 根据位置返回对象的前n行信息(默认值为5) ,用于快速测试数据集
print(df.describe())   # 生成描述性统计数据,总结数据集分布的集中趋势,分散和形状,不包括 NaN值。
# 数据预处理
data = df.dropna(0)    # 删除所有包含空值的行或列
print(data.info())
# data = df.drop_duplicates()
# print(data.info())

# 获取年龄数据
data = data.copy()
data['年龄'] = [dt.datetime.today().year - i.year for i in pd.to_datetime(data["出生年月"])]    # 日期数据如何处理
x = data["年龄"]
# 设置统计分值段范围
print(data.describe())       # 查看最大值与最小值
bins = np.arange(35, 65, 5)
time_bins = pd.cut(x, bins)    # 对数据进行离散化处理
print(time_bins)
# 按积分分割区间进行分组统计
df1 = data.groupby(time_bins)["年龄"].count()
print(df1)
# 绘制图形
df1.plot(kind="bar", rot=0)
plt.rcParams['font.sans-serif'] = ['Kaiti']   # 用来正常显示中文(黑体)常用字体包括: Kaiti-楷体; FangSong-仿宋; Microsoft YaHei-微软雅黑
plt.rcParams['axes.unicode_minus'] = False
plt.show()

在这里插入图片描述

目录
相关文章
|
2月前
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
90 20
|
24天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
54 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
2月前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
150 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
17天前
|
Web App开发 数据采集 数据安全/隐私保护
Selenium库详解:Python实现模拟登录与反爬限制的进阶指南
Selenium库详解:Python实现模拟登录与反爬限制的进阶指南
|
4月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
127 0
|
4月前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
81 2
|
4月前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
90 2
|
4月前
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南
|
4月前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
4月前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南

热门文章

最新文章

推荐镜像

更多