精华内容
下载资源
问答
  • matplotlib 可视化

    2018-09-12 07:40:04
    matplotlib 可视化matplotlib 可视化
  • Matplotlib可视化

    2018-05-19 00:43:29
    Matplotlib可视化 可当模板用 通过这个教程,你将收获以下知识: * matplotlib 及环境配置 * 数据图的组成结构,与 matplotlib 对应的名称 * 常见的数据绘图类型,与绘制方法 您可能需要以下的准备与先修...

    Matplotlib可视化

    • 可当模板用

    通过这个教程,你将收获以下知识:
    * matplotlib 及环境配置
    * 数据图的组成结构,与 matplotlib 对应的名称
    * 常见的数据绘图类型,与绘制方法

    您可能需要以下的准备与先修知识:
    * Python开发环境及matplotlib工具包
    * Python基础语法
    * Python numpy 包使用

    1.matplotlib 安装配置

    linux可以通过以下方式安装matplotlib

    sudo pip install numpy
    sudo pip install scipy
    sudo pip install matplotlib

    windows 可以使用anaconda

    数据最好用series dataframe如果有报错,用’.values’转换成numpy

    2.一幅可视化图的基本结构

    通常,使用 numpy 组织数据, 使用 matplotlib API 进行数据图像绘制。 一幅数据图基本上包括如下结构:

    • Data: 数据区,包括数据点、描绘形状
    • Axis: 坐标轴,包括 X 轴、 Y 轴及其标签、刻度尺及其标签
    • Title: 标题,数据图的描述
    • Legend: 图例,区分图中包含的多种曲线或不同分类的数据

    其他的还有图形文本 (Text)、注解 (Annotate)等其他描述

    3.画法

    下面以常规图为例,详细记录作图流程及技巧。按照绘图结构,可将数据图的绘制分为如下几个步骤:

    • 导入 matplotlib 包相关工具包
    • 准备数据,numpy 数组存储
    • 绘制原始曲线
    • 配置标题、坐标轴、刻度、图例
    • 添加文字说明、注解
    • 显示、保存绘图结果

    下面是一个包含cos、sin、sqrt函数的完整图像:

    3.1导包

    会用到 matplotlib.pyplot、pylab 和 numpy

    #coding:utf-8
    %matplotlib inline
    import numpy as np
    import matplotlib.pyplot as plt
    from pylab import *

    3.2准备数据

    numpy 常用来组织源数据:

    # 定义数据部分
    x = np.arange(0., 10, 0.2)
    y1 = np.cos(x)
    y2 = np.sin(x)
    y3 = np.sqrt(x)
    
    #x = all_df['house_age']
    #y = all_df['house_price']

    3.3绘制基本曲线

    使用 plot 函数直接绘制上述函数曲线,可以通过配置 plot 函数参数调整曲线的样式、粗细、颜色、标记等:

    # 绘制 3 条函数曲线
    # $y=\sqrt{x}$
    plt.rcParams["figure.figsize"] = (12,8)
    plt.plot(x, y1, color='blue', linewidth=1.5, linestyle='-', marker='.', label=r'$y = cos{x}$')
    plt.plot(x, y2, color='green', linewidth=1.5, linestyle='-', marker='*', label=r'$y = sin{x}$')
    plt.plot(x, y3, color='m', linewidth=1.5, linestyle='-', marker='x', label=r'$y = \sqrt{x}$')

    3.3.1 关于颜色的补充

    主要是color参数:
    * r 红色
    * g 绿色
    * b 蓝色
    * c cyan
    * m 紫色
    * y 土黄色
    * k 黑色
    * w 白色

    3.3.2 linestyle 参数

    linestyle 参数主要包含虚线、点化虚线、粗虚线、实线,如下:

    3.3.3 marker 参数

    marker参数设定在曲线上标记的特殊符号,以区分不同的线段。常见的形状及表示符号如下图所示:

    3.4 设置坐标轴

    可通过如下代码,移动坐标轴 spines

    # 坐标轴上移
    ax = plt.subplot(111)
    #ax = plt.subplot(2,2,1)
    ax.spines['right'].set_color('none')     # 去掉右边的边框线
    ax.spines['top'].set_color('none')       # 去掉上边的边框线
    # 移动下边边框线,相当于移动 X 轴
    ax.xaxis.set_ticks_position('bottom')    
    ax.spines['bottom'].set_position(('data', 0))
    # 移动左边边框线,相当于移动 y 轴
    ax.yaxis.set_ticks_position('left')
    ax.spines['left'].set_position(('data', 0))

    png

    可通过如下代码,设置刻度尺间隔 lim、刻度标签 ticks

    # 设置 x, y 轴的刻度取值范围
    plt.xlim(x.min()*1.1, x.max()*1.1)
    plt.ylim(-1.5, 4.0)
    # 设置 x, y 轴的刻度标签值
    plt.xticks([2, 4, 6, 8, 10], [r'two', r'four', r'six', r'8', r'10'])
    plt.yticks([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0],
        [r'-1.0', r'0.0', r'1.0', r'2.0', r'3.0', r'4.0'])
    ([<matplotlib.axis.YTick at 0x199899e39b0>,
      <matplotlib.axis.YTick at 0x19989694550>,
      <matplotlib.axis.YTick at 0x19989dd49b0>,
      <matplotlib.axis.YTick at 0x19989ddd630>,
      <matplotlib.axis.YTick at 0x19989dddc88>,
      <matplotlib.axis.YTick at 0x19989de5358>],
     <a list of 6 Text yticklabel objects>)
    

    png

    可通过如下代码,设置 X、Y 坐标轴和标题:

    # 设置标题、x轴、y轴
    plt.title('title', fontsize=19)
    plt.xlabel('x', fontsize=18, labelpad=88.8)
    plt.ylabel('y', fontsize=18, labelpad=12.5)
    Text(0,0.5,'y')
    

    png

    3.5 设置文字描述、注解

    可通过如下代码,在数据图中添加文字描述 text:

    plt.text(0.8, 0.9, r'$x \in [0.0, \ 10.0]$', color='k', fontsize=15)
    plt.text(0.8, 0.8, r'$y \in [-1.0, \ 4.0]$', color='k', fontsize=15)
    Text(0.8,0.8,'$y \\in [-1.0, \\ 4.0]$')
    

    png

    可通过如下代码,在数据图中给特殊点添加注解 annotate:

    # 特殊点添加注解
    plt.scatter([8,],[np.sqrt(8),], 50, color ='m')  # 使用散点图放大当前点
    plt.annotate(r'$2\sqrt{2}$', xy=(8, np.sqrt(8)), xytext=(8.5, 2.2), fontsize=16, color='#090909', arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=0.1', color='#090909'))

    3.6 设置图例

    可使用如下两种方式,给绘图设置图例:
    * 1: 在 plt.plot 函数中添加 label 参数后,使用 plt.legend(loc=’up right’)
    * 2: 不使用参数 label, 直接使用如下命令:

    plt.legend([‘cos(x)’, ‘sin(x)’, ‘sqrt(x)’], loc=’upper right’)

    3.7 网格线开关

    可使用如下代码,给绘图设置网格线:

    # 显示网格线
    plt.grid(True)

    png

    3.8 显示与图像保存

    plt.show()    # 显示
    #savefig('../figures/plot3d_ex.png',dpi=48)    # 保存,前提目录存在

    4.完整的绘制程序

    #coding:utf-8
    
    import numpy as np
    import matplotlib.pyplot as plt
    from pylab import *
    
    # 定义数据部分
    x = np.arange(0., 10, 0.2)
    y1 = np.cos(x)
    y2 = np.sin(x)
    y3 = np.sqrt(x)
    
    # 绘制 3 条函数曲线
    plt.plot(x, y1, color='blue', linewidth=1.5, linestyle='-', marker='.', label=r'$y = cos{x}$')
    plt.plot(x, y2, color='green', linewidth=1.5, linestyle='-', marker='*', label=r'$y = sin{x}$')
    plt.plot(x, y3, color='m', linewidth=1.5, linestyle='-', marker='x', label=r'$y = \sqrt{x}$')
    
    # 坐标轴上移
    ax = plt.subplot(111)
    ax.spines['right'].set_color('none')     # 去掉右边的边框线
    ax.spines['top'].set_color('none')       # 去掉上边的边框线
    
    # 移动下边边框线,相当于移动 X 轴
    ax.xaxis.set_ticks_position('bottom')    
    ax.spines['bottom'].set_position(('data', 0))
    
    # 移动左边边框线,相当于移动 y 轴
    ax.yaxis.set_ticks_position('left')
    ax.spines['left'].set_position(('data', 0))
    
    # 设置 x, y 轴的取值范围
    plt.xlim(x.min()*1.1, x.max()*1.1)
    plt.ylim(-1.5, 4.0)
    
    # 设置 x, y 轴的刻度值
    plt.xticks([2, 4, 6, 8, 10], [r'2', r'4', r'6', r'8', r'10'])
    plt.yticks([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], 
        [r'-1.0', r'0.0', r'1.0', r'2.0', r'3.0', r'4.0'])
    
    # 添加文字
    plt.text(0.8, 0.8, r'$x \in [0.0, \ 10.0]$', color='k', fontsize=15)
    plt.text(0.8, 0.9, r'$y \in [-1.0, \ 4.0]$', color='k', fontsize=15)
    
    # 特殊点添加注解
    plt.scatter([8,],[np.sqrt(8),], 50, color ='m')  # 使用散点图放大当前点
    plt.annotate(r'$2\sqrt{2}$', xy=(8, np.sqrt(8)), xytext=(8.5, 2.2), fontsize=16, color='#090909', arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=0.1', color='#090909'))
    
    # 设置标题、x轴、y轴
    plt.title(r'$the \ function \ figure \ of \ cos(), \ sin() \ and \ sqrt()$', fontsize=19)
    plt.xlabel(r'$the \ input \ value \ of \ x$', fontsize=18, labelpad=88.8)
    plt.ylabel(r'$y = f(x)$', fontsize=18, labelpad=12.5)
    
    # 设置图例及位置
    plt.legend(loc='up right')    
    # plt.legend(['cos(x)', 'sin(x)', 'sqrt(x)'], loc='up right')
    
    # 显示网格线
    plt.grid(True)    
    
    # 显示绘图
    plt.show()

    png

    5.常用图形

    详情资料这里

    • 曲线图:matplotlib.pyplot.plot(data)
    • 灰度/直方图:matplotlib.pyplot.hist(data)
    • 散点图:matplotlib.pyplot.scatter(data)
    • 箱式/箱线图:matplotlib.pyplot.boxplot(data)

    5.1 曲线图

    x = np.arange(-5,5,0.1)
    y = x ** 2
    plt.plot(x,y)
    [<matplotlib.lines.Line2D at 0x1998a71ebe0>]
    

    png

    5.2 直方图

    # 对数据做分桶的时候用
    x = np.random.normal(size=1000)
    plt.hist(x, bins=10)
    (array([   1.,   13.,   57.,  144.,  287.,  241.,  160.,   58.,   35.,    4.]),
     array([-3.57006611, -2.87554624, -2.18102637, -1.4865065 , -0.79198663,
            -0.09746676,  0.59705311,  1.29157298,  1.98609285,  2.68061272,
             3.37513259]),
     <a list of 10 Patch objects>)
    

    png

    5.3 散点图

    plt.rcParams["figure.figsize"] = (8,8)
    x = np.random.normal(size=1000)
    y = np.random.normal(size=1000)
    plt.scatter(x,y)
    <matplotlib.collections.PathCollection at 0x1998bc8c668>
    

    png

    5.4 箱线图

    • 在数据处理中可以通过箱线图去掉噪声,这是一个基于统计学的方法
    np.random.seed(2)          #设置随机种子 
    df = pd.DataFrame(np.random.rand(5,4), columns=['A', 'B', 'C', 'D'])#先生成0-1之间的5*4维度数据,再装入4列DataFrame中 
    df.boxplot()        #也可用plot.box() 
    plt.show()
    

    png

    箱式图科普
    • 上边缘(Q3+1.5*IQR/“箱子高度”)、下边缘(Q1-1.5*IQR/“箱子高度”)、IQR=Q3-Q1
    • 上四分位数(Q3)、下四分位数(Q1)
    • 中位数
    • 异常值
    • 处理异常值时与3σ标准的异同:统计边界是否受异常值影响、容忍度的大小

    • 箱子的上边界和下边界(蓝色部分):Q3 百分之75的分位数,Q1百分之25分位数

    • 两条黑线:上边缘(Q3+1.5*IQR/“箱子高度”)、下边缘(Q1-1.5*IQR/“箱子高度”)、IQR=Q3-Q1,IQR为箱子的高度

    • 两条黑线为临界值/边缘值,如果出现在黑线以外的是小概率事件,可以把它当做异常值。

    • 大多用于表示一维的数据,中间的两条线没意义

    更多的模板GitHub里找

    参考文献:

    七月在线课件

    展开全文
  • Matplotlib可视化分析实战
  • matplotlib可视化工具使用!
  • 可视化天气数据集:使用Matplotlib可视化天气数据集
  • 主要介绍了Python matplotlib可视化实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • matplotlib可视化Data analysis is about telling a story. Whether it’s a story about your customers, the services you provide or maybe even macroeconomic development, your goal as a data scientist is ...

    matplotlib可视化

    Data analysis is about telling a story. Whether it’s a story about your customers, the services you provide or maybe even macroeconomic development, your goal as a data scientist is to deliver a message that compels, persuades, and convinces your audience to take action.

    数据分析是讲故事。 无论是有关客户,提供服务或什至是宏观经济发展的故事,您作为数据科学家的目标都是传递可迫使,说服并说服听众采取行动的信息。

    But power of the story depends on how well it is performed.

    但是故事的力量取决于它的表现。

    If you have a great story, but deliver it poorly, your audience is less likely to take action. That’s where animated presentation can help.

    如果您有一个很棒的故事,但表现不佳,那么您的听众就不太可能采取行动。 这就是动画演示可以提供帮助的地方。

    Animated Visualization is a rich, engaging medium, easy to manage, and will help your key points pop. It offers all the benefits of a visual medium with much smaller resource requirements than you might expect.

    动画可视化是一种丰富,引人入胜的媒体,易于管理,并且可以帮助您突出关键点。 它提供视觉媒体的所有优势,而资源需求却比您预期的要少得多。

    I would like to show how in a few steps you can create animation in Matplotlib.

    我想展示一下如何在Matplotlib中创建动画。

    # STEP 1: Import the necessary modulesimport numpy as np
    import pandas as pd
    from matplotlib import pyplot as plt
    from matplotlib.animation import FuncAnimation
    plt.style.use('seaborn-pastel')# STEP 2: Set up the plotting areafig = plt.figure(figsize=(9,7));
    ax = plt.axes(xlim=(0, 4), ylim=(-2, 2));# STEP 3: Create data to plotline, = ax.plot([], [], lw=3);def init():
    line.set_data([], [])
    return line,# STEP 4: create a function to update the linedef animate(i):
    x = np.linspace(0, 4, 1000)
    y = np.sin(2 * np.pi * (x - 0.01 * i))
    line.set_data(x, y)
    return line,# STEP 5: call FuncAnimation and showanim = FuncAnimation(fig, animate, init_func=init,
    frames=200, interval=20, blit=True);
    anim.save('sine_wave.gif', writer='imagemagick');

    Animated sinusoid

    动画正弦曲线

    Animated Visualization of Time Series (1-minute Gold Price for 2018 yr.)

    时间序列的动画可视化(2018年1分钟金价)

    Image for post

    The Bayes update

    贝叶斯更新

    This animation displays the posterior estimate updates as it is refitted when new data arrives. The vertical line represents the theoretical value to which the plotted distribution should converge.

    当新数据到达时,该动画将显示后验估计更新,并进行更新。 垂直线表示绘制的分布应收敛的理论值。

    Image for post

    Animated histogram

    动画直方图

    This example shows how to use a path patch to draw a bunch of rectangles for an animated histogram.

    本示例说明如何使用路径补丁为动画直方图绘制一堆矩形。

    Image for post

    An animation of random data

    随机数据的动画

    Image for post

    Rain simulation

    降雨模拟

    Simulates rain drops on a surface by animating the scale and opacity of 50 scatter points. (Author: Nicolas P. Rougier)

    通过设置50个散射点的比例和不透明度动画来模拟表面上的雨滴。 (作者:Nicolas P. Rougier)

    Image for post

    翻译自: https://medium.com/@wetpaint3/animated-visualization-in-matplotlib-60cd9649f8f9

    matplotlib可视化

    展开全文
  • python matplotlib 可视化

    2019-04-12 18:54:42
    参考matplotlib可视化 的色彩选择

    对于高光谱数据标签进行二维绘图时候,选择合适的色彩单配对于显示效果是很关键的。好的色彩搭配不仅看上去美观大方, 而且不同label之间的对比也明显。最近通过尝试发现在众多色彩搭配中,‘inferno’是不错的。
    参考matplotlib可视化 的色彩选择

    展开全文
  • Matplotlib可视化1

    2019-10-09 06:33:09
    Matplotlib可视化 转载于:https://www.cnblogs.com/strivepy/p/11412384.html

    Matplotlib可视化

    转载于:https://www.cnblogs.com/strivepy/p/11412384.html

    展开全文
  • Matplotlib可视化2

    2019-10-09 06:33:07
    Matplotlib可视化 转载于:https://www.cnblogs.com/strivepy/p/11412398.html
  • matplotlib 可视化 cmap colormap
  • Matplotlib可视化基础 Scatter Plot(散点图)
  • Top 50 matplotlib 可视化案例
  • 8.3 Matplotlib 可视化 原文:Visualization with Matplotlib 译者:飞龙 协议:CC BY-NC-SA 4.0 本节是《Python 数据科学手册》(Python Data Science Handbook)的摘录。 我们现在将深入研究M atplotlib 包,...
  • matplotlib 可视化 —— cmap(colormap)

    千次阅读 2019-02-11 21:11:20
    matplotlib 可视化 —— cmap(colormap)
  •  Python有很多非常优秀易用的数据可视化的库,作为入门在这里使用Python的matplotlib,事实上Python中很多可视化库都是基于matplotlib开发的。  Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建...
  • 01 matplotlib可视化 餐饮订单例子实践
  • [转载]python–matplotlib可视化知识点整理,方便随时查看 链接 https://segmentfault.com/a/1190000005104723
  • SciKit-Learn 使用matplotlib可视化数据 SciKit-Learn 可视化数据:主成分分析(PCA) SciKit-Learn 预处理数据 SciKit-Learn K均值聚类 SciKit-Learn 支持向量机 SciKit-Learn 速查 digits是一个手写数字的数据集,...
  • 在学习Matplotlib可视化过程中绘制一些相应的图形往往需要给图形添加数据标签这样才能通过图形更清楚的知道要表达的含义,下面通过一些简单的案例来讲解。 【案例一】 胡润财富榜:亿万资产超高净值家庭数 利用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,053
精华内容 6,021
关键字:

matplotlib可视化