散点图是用于观测数据的相关性的,有正相关,负相关,不相关
散点图和折线图是数据分析中最常用的两种图形,他们能够分析不同数值型特征间的关系。其中,散点图主要用于分析特征间的相关关系。
散点图(scatter)可以提供两类关键信息:
- 特征之间是否存在数值或者数量的关联趋势,其趋势是线性的还是非线性的;
- 观察数据中是否存在噪点,以及直观的判断噪点是否会对模型产生很大的影响。
Matplotlib 中绘制散点图的函数为 scatter() ,使用语法如下:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, data=None, **kwargs)
其中颜色参数c如下:
基本用法
import pandas as pd
import matplotlib.pyplot as plt
#读取数据
datafile = u'D:\\pythondata\\learn\\matplotlib.xlsx'
data = pd.read_excel(datafile)
plt.figure(figsize=(10,5))#设置画布的尺寸
plt.title('Examples of scatter plots',fontsize=20)#标题,并设定字号大小
plt.xlabel(u'x-year',fontsize=14)#设置x轴,并设定字号大小
plt.ylabel(u'y-income',fontsize=14)#设置y轴,并设定字号大小
plt.scatter(data['时间'],data['收入_Jay'], s=100, c='deeppink', marker='o')
plt.scatter(data['时间'],data['收入_JJ'], s=100, c='darkblue', marker='+')
plt.scatter(data['时间'],data['收入_Jolin'], s=100, c='goldenrod', marker='*')
plt.legend(['Jay income', 'JJ income', 'Jolin income'])#标签
plt.show()#显示图像
散点的大小不同(根据点对应的数值)
import pandas as pd
import matplotlib.pyplot as plt
#读取数据
datafile = u'D:\\pythondata\\learn\\matplotlib.xlsx'
data = pd.read_excel(datafile)
plt.figure(figsize=(10,5))#设置画布的尺寸
plt.title('Examples of scatter plots',fontsize=20)#标题,并设定字号大小
plt.xlabel(u'x-year',fontsize=14)#设置x轴,并设定字号大小
plt.ylabel(u'y-income',fontsize=14)#设置y轴,并设定字号大小
sValue = data['收入_Jay']*0.5 #根据值来设置点的大小
plt.scatter(data['时间'],data['收入_Jay'], s=sValue, c='deeppink', marker='o')
plt.legend(['Jay income'])#标签
plt.show()#显示图像
散点的颜色不同(指定颜色或者渐变色)
import pandas as pd
import matplotlib.pyplot as plt
#读取数据
datafile = u'D:\\pythondata\\learn\\matplotlib.xlsx'
data = pd.read_excel(datafile)
plt.figure(figsize=(10,5))#设置画布的尺寸
plt.title('Examples of scatter plots',fontsize=20)#标题,并设定字号大小
plt.xlabel(u'x-year',fontsize=14)#设置x轴,并设定字号大小
plt.ylabel(u'y-income',fontsize=14)#设置y轴,并设定字号大小
#指定点的颜色的序列
cValue_1 = ['r','c','g','b','r','y','g','b','m']
plt.scatter(data['时间'],data['收入_Jay'],c = cValue_1, s=100, marker='o')
#渐变色
cValue_2 =data['收入_Jay']*0.5
cm = plt.cm.get_cmap('Blues')
plt.scatter(data['时间'],data['收入_JJ'],c = cValue_2, s=100, marker='*', cmap=cm)
plt.show()#显示图像