plt.scatter() 和sns.scatterplot() 画散点图

plt.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)

参数解释:

1 x,y:表示的是大小为(n,)的数组,也就是我们即将绘制散点图的数据点,相当于是x、y轴坐标
2 s:是一个实数或者是一个数组大小为(n,),这个是一个可选的参数。可理解为散点的的点的大小
3 c:表示的是颜色,也是一个可选项。默认是蓝色'b',表示的是标记的颜色,或者可以是一个表示颜色的字符,或者是一个长度为n的表示颜色的序列等等,感觉还没用到过现在不解释了。但是c不可以是一个单独的RGB数字,也不可以是一个RGBA的序列。可以是他们的2维数组(只有一行)。
4 marker:表示的是标记的样式,默认的是'o'5 cmap:Colormap实体或者是一个colormap的名字,cmap仅仅当c是一个浮点数数组的时候才使用。如果没有申明就是image.cmap
6 norm:Normalize实体来将数据亮度转化到0-1之间,也是只有c是一个浮点数的数组的时候才使用。如果没有申明,就是默认为colors.Normalize。
7 vmin,vmax:实数,当norm存在的时候忽略。用来进行亮度数据的归一化。
8 alpha:实数,0-1之间。
9 linewidths:也就是标记点的长度。

例子:

##  基础函数库
import numpy as np 

## 导入画图库
import matplotlib.pyplot as plt
import seaborn as sns

x_fearures = np.array([[-1, -2], [-2, -1], [-3, -2], [1, 3], [2, 1], [3, 2]])
y_label = np.array([0, 0, 0, 1, 1, 1])


## 可视化构造的数据样本点
plt.figure()
plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=50, cmap='viridis')
plt.title('Dataset')
plt.show()

#改变s的参数,点的大小改变了
plt.figure()
plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=100, cmap='viridis')
plt.title('Dataset')
plt.show()

#改变market
plt.figure()
plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=100, cmap='viridis',marker='x')
plt.title('Dataset')
plt.show()

sns.scatterplot() 画散点图

seaborn.scatterplot(x=None, y=None, hue=None,
                    style=None, size=None, data=None, 
                    palette=None, hue_order=None, hue_norm=None,
                    sizes=None, size_order=None, size_norm=None, 
                    markers=True, style_order=None, x_bins=None,
                    y_bins=None, units=None, estimator=None, 
                    ci=95, n_boot=1000, alpha='auto', x_jitter=None,
                    y_jitter=None, legend='brief', ax=None, **kwargs)

参数解释:

1 data: DataFrame
2 x,y为数据中变量的名称; 作用:对将生成具有不同颜色的元素的变量进行分组。可以是分类或数字.
3 size:数据中的名称  作用:根据指定的名称(列名),根据该列中的数据值的大小生成具有不同大小的效果。可以是分类或数字。
4 style:数据中变量名称(比如:二维数据中的列名) 作用:对将生成具有不同破折号、或其他标记的变量进行分组。
5 palette:调试板名称,列表或字典类型  作用:设置hue指定的变量的不同级别颜色。
6 hue_order:列表(list)类型  作用:指定hue变量出现的指定顺序,否则他们是根据数据确定的。
7 hue_norm:tuple或Normalize对象
8 sizes:list dict或tuple类型  作用:设置线宽度,当其为数字时,它也可以是一个元组,指定要使用的最大和最小值,会自动在该范围内对其他值进行规范化。

例子

## 导入画图库
import matplotlib.pyplot as plt
import seaborn as sns; 
sns.set()
tips = sns.load_dataset("tips")

#如果单纯是data一个参数,这data的特征需要全部都是数值型 sns.scatterplot(data
=tips) #ValueError: A wide-form input must have only numeric values. sns.scatterplot( x="total_bill", y="tip",data=tips) plt.show()

设置hue 根据设置的类别,产生颜色不同的点的散点图 eg.下图为根据time分类的散点图

sns.scatterplot(x="total_bill", y="tip", hue="time",data=tips)
plt.show()

设置hue 根据设置的类别,产生颜色不同的点的散点图,设置style,使其生成不同的标记的点 eg.下图为hue与style设置相同的分类的散点图

sns.scatterplot(x="total_bill", y="tip",hue="time", style="time", data=tips)
plt.show()

 设置size ,根据设置的类别,产生大小不同的点的散点图

sns.scatterplot(x="total_bill", y="tip", size="time",data=tips)
plt.show()

 使用指定的标记

markers = {"Lunch": "s", "Dinner": "X"}
sns.scatterplot(x="total_bill", y="tip", style="time",
                markers=markers,
                data=tips)
plt.show()

 利用pandas构建时间序列数据,从2000-1-31开始,以月为频率,生成100条时间序列

index = pd.date_range("2000-1-11", periods=100,
                      freq="m", name="date")
data = np.random.randn(100, 4).cumsum(axis=0)
wide_df = pd.DataFrame(data, index, ["a", "b", "c", "d"])
sns.scatterplot(data=wide_df)
plt.show()

原文地址:https://www.cnblogs.com/cgmcoding/p/13475462.html