大数据可视化技术 实验三:Matplotlib和Seaborn基本操作

大数据可视化技术

实验三:Matplotlib和Seaborn基本操作

一、实验名称 

Matplotlib和Seaborn基本操作

二、实验目的

通过该实验的实践,要求学生能够熟练使用Matplotlib&Seaborn对基本图表的可视化展示,掌握住使用这两种工具绘制图表的一般化流程。

三、实验原理

Matplotlib 是 Python 的可视化基础库,作图风格和 MATLAB 类似,所以称为 Matplotlib。

Seaborn 是一个基于 Matplotlib 的高级可视化效果库,针对 Matplotlib 做了更高级的封装,让作图变得更加容易。你可以用短小的代码绘制更多维度数据的可视化效果图。

使用matplotlib或Seaborn可以展示可视化的10种基本图表。

四、实验步骤

1 散点图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
N = 1000
x = np.random.randn(N) #随机生成1000个[0,1)之间的数据
y = np.random.randn(N) #随机生成1000个[0,1)之间的数据
# 用 Matplotlib 画散点图
plt.scatter(x, y,marker='>') #点的标识为右箭头
plt.show()
# 用 Seaborn 画散点图
df = pd.DataFrame({'x': x, 'y': y}) #转换数据
sns.jointplot(x="x", y="y", data=df, kind='scatter') #生成散点图
plt.show()

输出结果:

2 折线图

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据准备
x = [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
y = [5, 3, 6, 20, 17, 16, 19, 30, 32, 35]
# 使用 Matplotlib 画折线图
plt.plot(x, y) #直接使用数组数据
plt.show() #展示图表
# 使用 Seaborn 画折线图
df = pd.DataFrame({'x': x, 'y': y}) #转换数据
sns.lineplot(x="x", y="y", data=df) #绘制折线图
plt.show() #展示图表

输出结果:

3 直方图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据准备
a = np.random.randn(100) #随机生成1000个[0,1)之间的数据
s = pd.Series(a) #转换数据
# 用 Matplotlib 画直方图
plt.hist(s) #绘制直方图
plt.show() #展示图表
# 用 Seaborn 画直方图
sns.distplot(s, kde=False) #不使用密度函数
plt.show() #展示图表
sns.distplot(s, kde=True) #使用密度函数
plt.show() #展示图表

输出结果:

4 条形图

import matplotlib.pyplot as plt
import seaborn as sns
# 数据准备
x = ['Cat1', 'Cat2', 'Cat3', 'Cat4', 'Cat5']
y = [5, 4, 8, 12, 7]
# 用 Matplotlib 画条形图
plt.bar(x, y)
plt.show() #展示图表
# 用 Seaborn 画条形图
sns.barplot(x, y)
plt.show() #展示图表

输出结果:

5 箱线图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据准备
# 生成 0-1 之间的 10*4 维度数据
data=np.random.normal(size=(10,4))
lables = ['A','B','C','D'] #标签数据
# 用 Matplotlib 画箱线图
plt.boxplot(data,labels=lables)
plt.show() #展示图表
# 用 Seaborn 画箱线图
df = pd.DataFrame(data, columns=lables)
sns.boxplot(data=df)
plt.show() #展示图表

输出结果:

6 饼图

import matplotlib.pyplot as plt
# 数据准备
nums = [25, 37, 33, 37, 6]
labels = ['High-school','Bachelor','Master','Ph.d', 'Others'] #标签数据
# 用 Matplotlib 画饼图
plt.pie(x = nums, labels=labels) #绘制饼图
plt.show() #展示图表

输出结果:

7 热力图

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# 数据准备
flights = pd.read_csv("/home/ubuntu/flights.csv") #读取数据
data=flights.pivot('year','month','passengers') #转换数据
# 用 Seaborn 画热力图
sns.heatmap(data)
plt.show()

输出结果:

8 蜘蛛图

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
zhfont = mpl.font_manager.FontProperties(fname='/usr/share/fonts/truetype/wqy/wqy-microhei.ttc')
# 数据准备
labels=np.array([" 推进 ","KDA"," 生存 "," 团战 "," 发育 "," 输出 "])
stats=[83, 61, 95, 67, 76, 88]
# 画图数据准备,角度、状态值
angles=np.linspace(0, 2*np.pi, len(labels), endpoint=False)#数据准备
stats=np.concatenate((stats,[stats[0]]))#数值聚合
angles=np.concatenate((angles,[angles[0]]))#角度聚合
# 用 Matplotlib 画蜘蛛图
fig = plt.figure()#新建画布
ax = fig.add_subplot(111, polar=True)#创建极坐标
ax.plot(angles, stats, 'o-', linewidth=2)#绘制空心圆直线
ax.fill(angles, stats, alpha=0.25)#填充数据
ax.set_thetagrids(angles * 180/np.pi, labels)#绘制网格线
plt.show()#显示图表

输出结果:

9 二元变量分布图

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# 数据准备
tips = pd.read_csv("/home/ubuntu/tips.csv")#读取数据
print(tips.head(10))#展示前10条数据
# 用 Seaborn 画二元变量分布图(散点图,核密度图,Hexbin 图)
sns.jointplot(x="total_bill", y="tip", data=tips, kind='scatter')
sns.jointplot(x="total_bill", y="tip", data=tips, kind='kde')
sns.jointplot(x="total_bill", y="tip", data=tips, kind='hex')
plt.show()

输出结果:

10 成对关系图

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# 数据准备
iris = pd.read_csv('/home/ubuntu/iris.csv')
# 用 Seaborn 画成对关系
sns.pairplot(iris)
plt.show()#展示图表

输出结果:

五、实验总结

在实验中,通过实践练习,提高学生使用Matplotlib&Seaborn进行基本图表可视化操作的熟练度,掌握Matplotlib绘制图表的一般性的流程,养成规范绘图的习惯。能够使用Seaborn美化基本图表。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值