(Matplotlib)简易散点图

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

%matplotlib inline
plt.style.use('seaborn-whitegrid')

1.1用plt.plot()画散点图(需将离散点连接起来)

x = np.linspace(0, 10, 30)
y = np.sin(x)
plt.plot(x, y, 'o', color='black')

在这里插入图片描述
1.2显示部分可用图形标记

rng = np.random.RandomState(0)
for marker in ['o', '.', ',', 'x', '+', 'v', '^', '<', '>', 's', 'd']:
    plt.plot(rng.rand(5), rng.rand(5), marker,
            label="maker='{0}'".format(marker))
    plt.legend(numpoints=1)
    plt.xlim(0, 1.8)

在这里插入图片描述
1.3线条颜色图形组合

plt.plot(x, y, '-ok') # 实线 圆圈 黑色

在这里插入图片描述

plt.plot(x, y, '-p', color='gray',
        linewidth = 4, 
        markersize = 15,
        markerfacecolor = 'white',
        markeredgecolor = 'gray',
        markeredgewidth = 2)
plt.ylim(-1.2, 1.2)

在这里插入图片描述
2.1用plt.scatter画散点图(只要离散的点)

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

在这里插入图片描述
2.2plt.scatter 与 plt.plot 的主要差别
前者在创建散点图时具有更高的灵活性,可以 单独控制每个散点与数据匹配,也可以让每个散点具有不同的属性(大小、表面颜色、边 框颜色等)。

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

plt.scatter(x, y, marker='o', c=colors, s=sizes, alpha=0.3, cmap='viridis') # alpha:透明度
plt.colorbar()

在这里插入图片描述

from sklearn.datasets import load_iris
iris = load_iris()
features = iris.data.T

plt.scatter(features[0], features[1], alpha=0.2,
           marker='o', s=100*features[3], c=iris.target, cmap='viridis')
plt.xlabel(iris.feature_names[0])
plt.ylabel(iris.feature_names[1])

在这里插入图片描述
3.plot与scatter: 效率对比
plt.plot 与 plt.scatter 除了特征上的差异之外,还有什么影响我们选择的因素呢?在数 据量较小的时候,两者在效率上的差异不大。但是当数据变大到几千个散点时, plt.plot 的效率将大大高于 plt.scatter。这是由于 plt.scatter 会对每个散点进行单独的大小与颜 色的渲染,因此渲染器会消耗更多的资源。而在 plt.plot 中,散点基本都彼此复制,因此 整个数据集中所有点的颜色、尺寸只需要配置一次。由于这两种方法在处理大型数据集时 有很大的性能差异,因此面对大型数据集时, plt.plot 方法比 plt.scatter 方法好。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值