Numpy 如何在Pandas和Matplotlib中使用ax
在数据科学领域中,经常需要将数据可视化,使用Pandas和Matplotlib可以很方便地完成这个任务。而在数据处理过程中,经常需要使用Numpy来进行数组运算和处理。那么在使用Pandas和Matplotlib进行可视化时,如何使用Numpy的优秀功能呢?
阅读更多:Numpy 教程
如何使用Ax
在Matplotlib中,Figure
下可以包含多个Axes
对象,而Axes
则是主要的子图,其上绘制的图形可以进行自由变换和设置。所以我们需要使用ax
来指定子图进行绘制。
import matplotlib.pyplot as plt
fig, ax = plt.subplots() #创建Figure和Axes对象
Numpy数组准备
在使用Ax
进行可视化时,需要将数据转化为Numpy数组的形式,Numpy中提供了多种途径来生成数组对象。
生成全0或全1数组
import numpy as np
zeros = np.zeros((3,3)) #生成3行3列的全0数组
ones = np.ones((2,2)) #生成2行2列的全1数组
数组形状调整
如果我们有一个数据集,需要调整它的形状以适应可视化需求,可以使用reshape()
函数进行操作。
data = np.array([1,2,3,4,5,6])
data_reshape = np.reshape(data, [2,3]) #将数组形状转化为2行3列
数组元素排序
在排序数组时,可以使用Numpy提供的sort()
函数进行操作。
data = np.array([8,4,2,6])
data_sort = np.sort(data) #对数据进行排序
如何使用Ax
绘制柱状图
柱状图是用于比较不同元素值的一种图形表示方式,适合描述数据的分布和数量。使用Ax
对象可以很容易地绘制柱状图,以下是一个简单的示例:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#生成数据
raw_data = {'first_name': ['Keanu', 'Jiaqi', 'Mikhail', 'Ariel', 'Yiwei'],
'pre_score': [4, 24, np.nan, 2, 32],
'mid_score': [25, 94, 57, 62, 70],
'post_score': [np.nan, 35, 68, 80, 96]}
df = pd.DataFrame(raw_data, columns=['first_name', 'pre_score', 'mid_score', 'post_score'])
df
#处理数据
df.dropna(inplace=True) #删除缺失值
df['total_score'] = df['pre_score'] + df['mid_score'] + df['post_score'] #计算总分
#使用`Ax`绘制柱状图
fig, ax = plt.subplots()
ax.bar(df['first_name'], df['total_score']) #使用bar函数绘制柱状图
#添加标签、标题和设定y轴的范围
ax.set_xticklabels(df['first_name']) #设置x轴标签
ax.set_ylabel('Total Score') #设置y轴标签
ax.set_ylim([0, 150]) #设置y轴范围
ax.set_title('Student Total Scores') #设置图表标题
plt.show()
如何使用Ax
绘制饼图
饼图是常用的可视化数据分布的一种图形,适用于展示不同元素占比例的情况。使用Ax
对象可以很容易地绘制饼图,以下是一个简单的示例:
#生成数据
categories = ['A']
如何使用Ax
绘制饼图
饼图是常用的可视化数据分布的一种图形,适用于展示不同元素占比例的情况。使用Ax
对象可以很容易地绘制饼图,以下是一个简单的示例:
# 生成数据
categories = ['Apple', 'Banana', 'Grape', 'Orange']
amount = [25, 30, 20, 15]
# 使用`Ax`绘制饼图
fig, ax = plt.subplots()
ax.pie(amount, labels=categories, autopct='%1.1f%%') #使用pie函数绘制饼图
# 添加标题
ax.set_title("Fruit Distribution") #设置图表标题
plt.show()
如何使用Ax
绘制散点图
散点图通常用于展示不同变量之间的关系,如何使用Ax
对象绘制散点图呢?以下是一个简单的示例:
# 生成数据
x = np.random.rand(50) #生成50个随机的x值
y = np.random.rand(50) #生成50个随机的y值
# 使用`Ax`绘制散点图
fig, ax = plt.subplots()
ax.scatter(x, y, s=np.random.rand(50)*1000, c=np.random.rand(50)) #使用scatter函数绘制散点图
# 添加标签和标题
ax.set_xlabel('X') #设置x轴标签
ax.set_ylabel('Y') #设置y轴标签
ax.set_title('Scatter Plot') #设置图表标题
plt.show()
总结
在本文中,我们介绍了如何使用Ax
对象在Pandas和Matplotlib中进行可视化。通过以上三个示例,你了解了如何使用Ax
对象绘制柱状图、饼图和散点图,并了解了使用Numpy进行数据处理的一些技巧。希望这篇文章对你掌握数据可视化和Numpy的使用有所帮助。