开源堡垒机Jumpserver全网独家视频教程系列第一部上线了!免费章节pan.baidu.com/s/1LQ3c323XpG0is1172REnVg 提取码wp0i 视频详细介绍点我

散点图

阅读: 3292     评论:0

与线型图类似的是,散点图也是一个个点集构成的。但不同之处在于,散点图的各点之间不会按照前后关系以线条连接起来。

  • 用plt.plot画散点图
x = np.linspace(0,10,30)
y = np.sin(x)
plt.plot(x,y,'bo', ms=5)

img

奇怪,代码和前面的例子差不多,为什么这里显示的却是散点图而不是sin曲线呢?原因有二:一是点集比较少,稀疏,才30个;二是没有指定线型。

  • 用plt.scatter画散点图

scatter专门用于绘制散点图,使用方式和plot方法类似,区别在于前者具有更高的灵活性,可以单独控制每个散点与数据匹配,并让每个散点具有不同的属性。

一般使用scatter方法,如下例子就可以了:

plt.scatter(x, y, marker='o')

下面看一个随机不同透明度、颜色和大小的散点例子:

rng = np.random.RandomState(10)
x = rng.randn(100)
y = rng.randn(100)
colors = rng.rand(100)
sizes = 1000* rng.rand(100)

plt.scatter(x, y, c=colors, s=sizes, alpha=0.3)
plt.colorbar() # 绘制颜色对照条

img

主要参数说明:

  • x,y:输入数据
  • s:标记大小,以像素为单位
  • c:颜色
  • marker:标记
  • alpha:透明度
  • linewidths:线宽
  • edgecolors :边界颜色

上面的例子可以拓展到Scikit-learn中经典的鸢尾花iris数据来演示。

Iris数据集是常用的分类实验数据集,由Fisher在1936收集整理,是一类多重变量分析的数据集。数据集包含150个数据,分为3类,每类50个数据,每个数据包含4个属性。通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。

>>> from sklearn.datasets import load_iris 
>>> iris = load_iris()  # 载入iris数据集
>>> iris      # 查看一下
>>> iris.data  # 查看一下
>>> iris.target  # 查看一下
>>> iris.feature_names  # 查看一下
>>> features = iris.data.T   # 转置
>>> plt.scatter(features[0],features[1],alpha=0.2, s=100*features[3],c=iris.target)
    plt.xlabel(iris.feature_names[0]) 
    plt.ylabel(iris.feature_names[1]);

img

这个散点图让我们看到了不同维度的数据:每个点的坐标值x和y分别表示花萼的长度和宽度,点的大小表示花瓣的宽度,三种颜色对应三种不同类型的鸢尾花。这类多颜色多特征的散点图在探索和演示数据时非常有用。

在处理较少点集的时候scatter方法灵活度更高,可单独配置并渲染,但所需消耗的计算和内存资源也更多。当数据成千上万个之后,plot方法的效率更高,因为它对所有点使用一样的颜色、大小、类型等配置,自然更快。

scatter的更多内容请参考官网:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.html


 文本、箭头和注释 直方图 

评论总数: 0


点击登录后方可评论