设为首页 加入收藏

TOP

Python数据处理从零开始----第四章(可视化)(4)误差图
2019-02-19 14:49:46 】 浏览:85
Tags:Python 数据处理 从零 开始 ---- 第四章 可视化 误差

目录

Python数据处理从零开始----第四章(可视化)①Matplotlib包
Python数据处理从零开始----第四章(可视化)②图形和轴
Python数据处理从零开始----第四章(可视化)③散点图和误差棒
Python数据处理从零开始----第四章(可视化)④误差图
Python数据处理从零开始----第四章(可视化)⑤(韦恩图)
Python数据处理从零开始----第四章(可视化)⑥(画布设置)
Python数据处理从零开始----第四章(可视化)⑦(多图合并)
Python数据处理从零开始----第四章(可视化)⑧火山图
Python数据处理从零开始----第四章(可视化)⑨线性相关曲线
Python数据处理从零开始----第四章(可视化)⑩ROC曲线

Python数据处理从零开始----第四章(可视化)①①多分类ROC曲线

=========================================================

正文

绘制连续误差图

有时候需要展示连续变量的误差,matplotlib通过plt.plot和plt.fill_between来实现。下面通过Scikit-Learn程序库的API里面的高斯过程回归方法来演示。这是用一种非常灵活的非参数方程对带有不确定性的连续测量变量进行拟合的方法。

# -*- coding: utf-8 -*-
"""
Created on Tue Oct 30 18:46:30 2018

@author: Administrator
"""
%reset -f
%clear
# In[*]
%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')
import numpy as np



from sklearn.gaussian_process import GaussianProcess
# In[*]
# define the model and draw some data
model = lambda x: x * np.sin(x)
xdata = np.array([1, 3, 5, 6, 8])
ydata = model(xdata)

# Compute the Gaussian process fit
gp = GaussianProcess(corr='cubic', theta0=1e-2, thetaL=1e-4, thetaU=1E-1,
                     random_start=100)
gp.fit(xdata[:, np.newaxis], ydata)

xfit = np.linspace(0, 10, 1000)
yfit, MSE = gp.predict(xfit[:, np.newaxis], eva l_MSE=True)
dyfit = 2 * np.sqrt(MSE)  # 2*sigma ~ 95% confidence region

我们现在有xfit,yfit和dyfit,它们可以对我们的数据进行连续拟合。 我们可以将这些传递给plt.errorbar函数,如上所述,但我们真的不想用1000个错误条绘制1,000个点。 相反,我们可以使用浅色的plt.fill_between函数来显示这个连续错误:

# In[*]


# Visualize the result
plt.plot(xdata, ydata, 'or')
plt.plot(xfit, yfit, '-', color='gray')

plt.fill_between(xfit, yfit - dyfit, yfit + dyfit,
                 color='gray', alpha=0.2)
plt.xlim(0, 10);
9218360-246751a597ebff7f.png

注意我们在这里用fill_between函数完成的工作:传递一个x值,然后是Y轴下边界,然后是Y轴上边界,结果是这些区域之间的区域被填充。

直方图,数据区间和密度

一般直方图来用于显示数据的分布

# -*- coding: utf-8 -*-
"""
Created on Tue Oct 30 18:46:30 2018

@author: Administrator
"""
%reset -f
%clear
# In[*]
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('seaborn-white')

data = np.random.randn(1000)


plt.hist(data);
9218360-837d4c11a8ed97c5.png
# In[*]

plt.hist(data, bins=30, normed=True, alpha=0.5,
         histtype='stepfilled', color='#E41A1C',
         edgecolor='none');
9218360-f74e77e1dbd8c1a9.png

可以将histtype='stepfilled'与透明设置参数alpha搭配使用

 # In[*]        
         
x1 = np.random.normal(0, 0.8, 1000)
x2 = np.random.normal(-2, 1, 1000)
x3 = np.random.normal(3, 2, 1000)

kwargs = dict(histtype='stepfilled', alpha=0.8, normed=True, bins=40)

plt.hist(x1, **kwargs)
plt.hist(x2, **kwargs)
plt.hist(x3, **kwargs);
9218360-11459c32b7236dd4.png

配置图例

图例赋予可视化意义,为各种元素指定意义。 我们已经知道如何创建一个简单的图例; 在这里,我们将介绍如何在Matplotlib中自定义图例的位置和其他。可以使用plt.legend()命令创建最简单的图例,该命令会自动为任何标记的绘图元素创建图例:

# -*- coding: utf-8 -*-
"""
Created on Tue Oct 30 18:46:30 2018

@author: Administrator
"""
%reset -f
%clear
# In[*]
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')
%matplotlib inline
import numpy as np
x = np.linspace(0, 10, 1000)
fig, ax = plt.subplots()
ax.plot(x,np.sin(x), "#377EB8", label='Sine')
ax.plot(x,np.cos(x), "#E41A1C", label='Cosine')
ax.axis('equal')
leg = ax.legend();
         
9218360-7343943cbc1ab8a4.png
# In[*]
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')
%matplotlib inline
import numpy as np
x = np.linspace(0, 10, 1000)
fig, ax = plt.subplots()
ax.plot(x,np.sin(x), "#377EB8", label='Sine')
ax.plot(x,np.cos(x), "#E41A1C", label='Cosine')
ax.axis('equal')
leg = ax.legend(loc='upper left',frameon=False);
9218360-6799908336144f1e.png

还可以定义圆角边框(fancybox),增加阴影,改变外边框透明度(framealpha值),或者改变文字间距

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python从零开始第五章生物信息学.. 下一篇Python第四天   流程控制 &n..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目