什么是关联图?
关联图是查找两个事物之间关系的图像,他能为我们展示出一个事物随着另一个事物的变化如何变化。
典型的关联图有:折线图、散点图、相关矩阵等
我们什么时候会需要关联图?
1、数据报告 & 学术研究
展示趋势:比如产品销量随着时间如何变化,智力水平随着教育程度如何变化等
展现状态:不同年龄的客户的成交率,不同生产成本对应的生产员工技能要求等
2、数据探索 & 数据解读
探索数据关系,帮助了解试试,推动研究
3、统计学 & 机器学习
探索数据关系,指导数据预处理和模型选择
散点图
导入需要库
import numpy as np import pandas as pd import matplotlib as mpl
绘制一个简单的散点图
使用pd.scatter
函数绘制散点图
简单的散点图示例:
# 定义数据,x1 取随机数 x1 = np.random.randn(10) x2 = x1 + x1**2-10 # 定义画布,当只有会这个图的时候,下面这句不是必须存在的 plt.figure(figsize=(8,4)) # 绘制图像 plt.scatter(x1, # 横坐标 x2, # 纵坐标 s = 50, # 数据点的尺寸大小 c = "red", # 数据点的颜色 label = "red points" # 图例 ) # 装饰图形 # 显示图例,上面的 plt.scatter 中没有 label 属性的下面这句会出现警告 plt.legend() # 显示图形 plt.show()
绘制多种图例颜色的散点图(以两种为例)
绘制一下图形需要找到以下三个要素:
1、绘图用的数据,x1,x2
2、标签的列表
3、颜色
图例:
# 生成 10 行,2 列的数据表 x = np.random.randn(10,2) y = np.array([0,0,1,1,0,1,0,1,0,0]) plt.figure(figsize=(8,4)) colors = ["red","black"] # 确立颜色列表 label是 = ["Zero","One"] # 确立标签的类别列表 # 通过循环遍历 x.shape 将多个列形成的图像叠加在一起 for i in range(x.shape[1]): plt.scatter( x[y==i,0], x[y==i,1], c=colors[i], label=labels[i] ) # 在标签中存在几种类别,我们就需要循环几次,一次画一个颜色的点 plt.legend() plt.show()
绘制复杂的散点图
自己创造数据过于简单,我们可以使用网上大神的简单数据集学习绘制复杂的散点图。
midwest = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv") # 过滤标签,去除标签重复像 categories = np.unique(midwest['category']) #去掉所有重复的项 plt.figure(figsize=(16,10)) for i in range(len(categories)): plt.scatter(midwest.loc[midwest["category"]==categories[i],"area"] ,midwest.loc[midwest["category"]==categories[i],"poptotal"] ,s=20 ,c=np.array(plt.cm.tab10(i/len(categories))).reshape(1,-1) ,label=categories[i] ) plt.legend() plt.show()
以上。
Love & Share
[ 完 ]