Python数据处理从零开始----第四章(可视化)(3)目录正文

散点图

本节开始介绍用plt.plot和ax.plot画散点图

# In[*]
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
# In[*]
x = np.linspace(0,10,30)
y = np.sin(x)
plt.plot(x,y,'o',color='black')

第三个参数‘o'是代表散点图中散点的形状,可以修改。

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

可以拟合成一条曲线,其中’-ok‘中直线(-),圆圈(o),黑色(k)

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

用plt.scatter画散点图

plt.scatter相对于plt.plot的主要优势在于,前者在创建散点图时具有更高的灵活性,可以单独控制每个散点与数据匹配,也可以让每个散点具有不同的属性(大小,表面颜色,边框颜色等)

rng = np.random.RandomState(1234)
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,cmap='viridis')
plt.colorbar()
# In[*]
from sklearn.datasets import load_iris
iris = load_iris()
features = iris.data.T
plt.scatter(features[0],features[1],alpha=0.2,
            s=100*features[3],c=iris.target,cmap='viridis')
plt.xlabel(iris.feature_names[0])
plt.ylab(iris.feature_names[1])

当面对大型数据集时,plt.plot会在效率方面优于plt.scatter,这是因为plt.scatter会对每一个单独的散点进行大小或者颜色的设置,而plt.plot是一次性复制所有的设置。

绘制基本误差线

%reset -f
%clear
# In[*]
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

# In[*]
plt.style.use('seaborn-whitegrid')
x = np.linspace(0,10,50)
dy = np.linspace(0,1,50)
y = np.sin(x) + dy*np.random.randn(50)
plt.errorbar(x,y,yerr=dy,fmt='.k')

一般来说,误差棒的颜色最好比数据点的颜色稍浅一点比较好,尤其当你的数据点非常多时。

# In[*]
plt.style.use('seaborn-whitegrid')
x = np.linspace(0,10,50)
dy = np.linspace(0,1,50)
y = np.sin(x) + dy*np.random.randn(50)
plt.errorbar(x,y,yerr=dy,fmt='o',
             color='black',ecolor='gray',elinewidth=3,capsize=0)

误差棒还有一些比较少用的参数,例如水平方向的误差线(xerr),单侧误差线(one-sidederrorbar)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

手把手教你用 TensorFlow 实现文本分类(下)

本篇文章主要记录对之前用神经网络做文本识别的初步优化,进一步将准确率由原来的65%提高到80%,这里优化的几个方面包括: ● 随机打乱训练数据 ● 增加隐层,和...

3524
来自专栏tkokof 的技术,小趣及杂念

数学笔记(三)之镜面矩阵

  镜面变换在游戏中并不少见,相关资料网上也俯拾即是,不过自己总是感觉略显生疏,在此简单一记,算作是加深印象吧~

961
来自专栏大数据挖掘DT机器学习

用R语言预测股票价格涨跌—基于KNN分类器

K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用...

9237
来自专栏人工智能头条

如何通过机器学习还原图像色彩

1492
来自专栏阮一峰的网络日志

相似图片搜索的原理

上个月,Google把"相似图片搜索"正式放上了首页。 你可以用一张图片,搜索互联网上所有与它相似的图片。点击搜索框中照相机的图标。 ? 一个对话框会出现。 ?...

5237
来自专栏CVer

[计算机视觉论文速递] ECCV 2018 专场2

Amusi 将日常整理的论文都会同步发布到 daily-paper-computer-vision 上。名字有点露骨,还请见谅。喜欢的童鞋,欢迎star、for...

1060
来自专栏AI研习社

用 OpenCV 检测图像中各物体大小

在图像中测量物体的大小与计算从相机到物体之间的距离是相似的,在这两种情况下,我们需要定义一个比值,它测量每个给定指标的像素个数。

5131
来自专栏CreateAMind

lecun-20161209-nips-能量模型GAN

第二部分视频预测个人觉得lecun论文不如这篇论文:运动信息向量的神经网络学习 code、ppt、视频ok

993
来自专栏Petrichor的专栏

深度学习: 从 Selective Search 到 RPN

具体参见我的另一篇博客:Selective Search (选择搜索),简而言之就是,Selective Search 太low太低效。

2504
来自专栏人工智能

随机森林的简单实现

随机森林(RandomForest):顾名思义,是用随机的方式建立一个森林,森林里面:由很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后...

3917

扫码关注云+社区

领取腾讯云代金券