python绘制误差棒_Python数据处理从零开始----第四章(可视化)(3)散点图和误差棒...

原文:Python数据处理从零开始----第四章(可视化)(3)散点图和误差棒​www.jianshu.com

正文

散点图

本节开始介绍用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)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值