适合数据可视化的图(数据可视化常见图像绘制)
适合数据可视化的图(数据可视化常见图像绘制)
我们了解了常用的五种图形:
散点图折线图柱状图直方图饼图
那么如何用Matplotlib和Seaborn来画出它们。
Matplotlib:它在使用时灵活,可以定制化绘图,但是时间上的花费也比较多。为了提高画图效率,包Seaborn基于Matplotlib底层开发,使用更少的代码,将常用的可视化绘图过程进行封装,有时只需要一行代码便可以画出我们想要的图形,省时省力;此外seaborn还提供更为丰富的图像以及3D图形供我们使用。掌握两个库的使用可以满足我们在不同情况下的需求。
散点图
散点图(scatter plot),它将两组数据(或者变量)的值显示在二维坐标中,适合展示两个变量之间的关系。
第一张散点图用matplotlib绘制,第二张用seaborn绘制。我们可以看到两张图的区别:matplotlib默认情况下绘图区呈现是一个长方形,而seaborn是正方形并且含有x轴和y轴的标签;seaborn还展示散点图还给出了两组数据(变量)的分布情况。
说明:
用seaborn画图时,使用函数
画散点图。其中x,y是data中的下标,data就是我们要传入的数据。在Seaborn中,数据格式需要转换一下,采用科学计算库Pandas中的数据格式DataFrame;对DataFrame的概念我们了解即可,下期DataScience也会推出科学计算库Numpy和Pandas的使用中会有讲解。折线图
折线图能够显示数据的变化趋势,在matplotlib使用plot函数绘制,而在seaborn使用 lineplot(x,y,data=None)函数;data是传入的数据,一般是pandas中的DataFrame数据结构。
直方图
直方图( histogram )将横坐标等分成一定数量的小区间,在小区间内填充图形,它的高度是y值。特点是用来绘制连续性的数据,展示一组或者多组数据的分布状况(统计)。
#数据准备:创建一个一维随机数组 import numpy as np import random import pandas as pd a = np.random.randn(100) x = pd.Series(a) # Series是pandas中用来存放一维数组的数据格式 # ⽤Matplotlib画直⽅图; """ 使用plt.hist(x, bins=10)函数 参数x是一维数组,bins代表小区间的数量,默认是10。 """ import matplotlib.pyplot as plt plt.hist(x, bins=10) plt.show() # ⽤Seaborn画直⽅图: ''' 使用sns.distplot(x, bins=10, kde=True)函数 参数x是一维数组,bins代表直方图中的小区间数量,kde代表显示核密度估计,默认是True。 核密度估计是通过核函数来估计概率密度的方法。 ''' import seaborn as sns sns.distplot(x, kde=False) plt.show() # 图三显示用核函数估计概率密度 sns.distplot(x, kde=True) plt.show()
Matplotlib 运行结果:
Seaborn运行结果:
条形图
通过直方图可以看到变量的数值分布,那么条形图可以帮我们查看类别的特征。在条形图中,长条形的长度表示类别的频数,宽度表示类别。
条形图(bar chart)绘制离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)
# 数据准备 x = ['Cat1', 'Cat2', 'Cat3', 'Cat4', 'Cat5'] y = [3, 5, 7, 2, 9] # ⽤Matplotlib画条形图 # plt.bar(x, height)函数,参数x代表x轴的类别,height是y轴的数值 import matplotlib.pyplot as plt plt.bar(x,y) plt.show # ⽤Seaborn画条形图 # sns.barplot(x=None,y=None,data=None)函数;参数data为DataFrame类型 import seaborn as sns sns.barplot(x,y) plt.show()
运行结果:
饼图
饼图(Pie Chart)可以显示每个部分大小与总和之间的比例。在Python数据可视化中,主要用Matplotlib的pie函数来绘制。
用到的方法 matplotlib.pyplot.pie()参数解析: pie(x, explode=None, labels=None, colors=('b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'), autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center = (0, 0), frame = False ) 参数说明:x (每一块)的比例,如果sum(x) > 1会使用sum(x)归一化 labels (每一块)饼图外侧显示的说明文字 explode (每一块)离开中心距离 startangle 起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起shadow 是否阴影 labeldistance label绘制位置,相对于半径的比例, 如<1则绘制在饼图内侧 autopct 控制饼图内百分比设置,可以使用format字符串或者format function ‘%1.1f’指小数点前后位数(没有用空格补齐) pctdistance 类似于labeldistance,指定autopct的位置刻度 radius 控制饼图半径返回值: 如果没有设置autopct,返回(patches, texts) 如果设置autopct,返回(patches, texts, autotexts) patches – list –matplotlib.patches.Wedge对象 texts autotexts – matplotlib.text.Text对象
# 数据准备,显示各学历人数的比例 nums = [20, 42, 18, 7, 6] labels = ['High-school', 'Bachelor', 'Master', 'Ph.d', 'Other'] # pie(x, labels=None)函数,x代表绘制饼图的数据,labels是缺省值,可以为饼图添加标签 import matplotlib.pyplot as plt plt.pie(x=nums, labels=labels, autopct='%1.1f%%') # autopct:设置圆内的文本 # '1.1f%'指图片上显示的数字格式,表示小数点前后位数# 另外两个%%是format格式的符号plt.show()
运行结果:
小作业1、说出Matplotlib和Seaborn库的区别。2、总结画出五种常见图像的函数。,
-
- 淡雅老窖42度价格(老窖醇香淡雅6价格)
-
2025-07-03 19:33:38
-
- 怎么消灭家中的蟑螂,如何消灭家中的蟑螂
-
2025-07-03 19:31:23
-
- 七分裤和九分裤的区别(有种穿法叫九分穿衣法)
-
2025-07-03 19:29:09
-
- 00后没学历怎么发展,做为一个00后,没学历就不行么,我就不知道了,全
-
2025-07-03 19:26:54
-
- 世界十大顶级运动服品牌排行榜
-
2025-07-03 19:24:39
-
- 陆战之王大结局(结局是什么呢)
-
2025-07-03 19:22:25
-
- 鬣蜥怎么样养,鬣蜥养殖场
-
2025-07-03 19:20:10
-
- 分手那一天(分手那一天小说)
-
2025-07-03 19:17:55
-
- 公元年是中国哪一年,公元元年是我国的哪个朝代
-
2025-07-03 13:36:33
-
- 油田人家酒印象2号52度价格(油田人家印象东营42度酒价格)
-
2025-07-03 13:34:19
-
- 格莱美壁纸(格莱美壁纸壁布)
-
2025-07-03 13:32:04
-
- 房间有小壁虎怎么办会不会咬人,壁虎会咬人吗,壁虎有毒吗
-
2025-07-03 13:29:49
-
- 怎么辨别白酒是粮食酒和勾兑酒(怎么辨别是不是75酒精)
-
2025-07-03 13:27:35
-
- 现在农村做什么行业的比较好赚钱,目前农村做什么最赚钱
-
2025-07-03 13:25:20
-
- 葡萄酒的类型统计数据 统计数据的基本类型
-
2025-07-03 13:23:05
-
- 黄梅戏三杯酒(黄梅戏捧杯酒)
-
2025-07-03 13:20:51
-
- 适合自己在家做的项目,适合在家创业的项目有什么?
-
2025-07-03 13:18:36
-
- 深圳车牌竞价申请流程
-
2025-07-03 13:16:22
-
- 人为什么会出现幻觉(大脑是如何产生幻觉的)
-
2025-07-03 07:08:08
-
- 大龄女嫁二婚男幸福率(大龄单身女嫁给二婚男更容易幸福)
-
2025-07-03 07:05:54