精华内容
下载资源
问答
  • 核密度估计图核密度估计(kernel density plot)用于显示数据在X轴连续数据段内的分布状况;直方的变种,使用平滑曲线来绘制数值水平,从而得出更平滑的分布;较直方核密度估计,不受所使用分组数量的影响,...

    a954d41d697d01eb4e15348d6e7f73b4.png

    核密度估计图

    核密度估计图(kernel density plot)

    用于显示数据在X轴连续数据段内的分布状况;直方图的变种,使用平滑曲线来绘制数值水平,从而得出更平滑的分布;较直方图,核密度估计图,不受所使用分组数量的影响,更好地界定分布形状;

    核密度估计(kernel density estimation)

    在概率论中用来估计未知的密度函数,属于非参数检验方法之一;由Rosenblatt和Emanuel Parzen提出,又名Parzen窗(Parzen windows);

    核密度估计

    采用平滑的峰值函数“核”来拟合观察到的数据点,从而对真实的概率分布曲线进行模拟;核密度估计是一种用于估计概率密度函数的非参数方法;

    绘制核密度估计图

    plotnine包提供geomdensity()函数,绘制核密度估计图;geomdensity()函数的主要参数是带宽(bw)和核函数(kernel);核函数默认为高斯核函数“gaussian”;

    峰峦图

    峰峦图也可以应用于多数据系列的核密度估计可视化;X轴对应平均温度的数值范围;Y轴对应不同的月份;每个月份的核密度估计数值映射到颜色;可以很好地展示多数据系列的核密度估计结果;

    绘制核密度估计峰峦图

    joypy包提供了joyplot()函数,根据数据可以直接绘制不同颜色的核密度估计峰峦图;带有颜色渐变映射的核密度估计峰峦图,可以使用plotnine包的geomlinerange()函数和geomline()函数结合实现;绘制前需要先使用sklearn包的KernelDensity()函数求取每个月份的核密度估计曲线;再根据核密度估计数据绘制峰峦图;

    绘制多数据系列核密度估计图

    import pandas as pd

    from plotnine import *

    df=pd.read_csv('d:\python\out\HistDensityD.csv')

    #file.close() # 关闭文件

    #多数剧系列核密度估计图

    base_density=(ggplot(df, aes(x='MXSPD', fill='Location'))+

    geom_density(bw=1,alpha=0.55,colour="black",size=0.25,kernel="gaussian")+

    scale_fill_hue(s = 0.90, l = 0.65, h=0.0417,color_space='husl')+

    theme(

    text=element_text(size=13,color="black"),

    plot_title=element_text(size=15,family="myfont",face="bold.italic",hjust=.5,color="black"),#,

    legend_position=(0.7,0.75),

    legend_background = element_blank(),

    aspect_ratio =1.15,

    figure_size=(5,5)

    ))

    print(base_density)

    绘制核密度估计峰峦图

    import pandas as pd

    import numpy as np

    import joypy

    import matplotlib.pyplot as plt

    from matplotlib import cm

    import seaborn as sns

    plt.rc('font',family='Times New Roman')

    #

    sns.set_context("notebook", font_scale=1.5,

    rc={'font.size': 12,

    'axes.labelsize': 20, 'legend.fontsize':15,

    'xtick.labelsize': 15,'ytick.labelsize': 15})

    df = pd.read_csv("d:\python\out\lincoln_weather.csv")

    Categories=['January', 'February', 'March', 'April', 'May', 'June','July',

    'August','September', 'October', 'November','December']

    df['Month']=df['Month'].astype("category",Categories)

    fig, axes = joypy.joyplot(df, column=["Mean.Temperature..F."],

    by="Month", ylim='own',colormap=cm.Spectral_r,

    alpha= 0.9,figsize=(6,5))

    plt.xlabel("Mean Temperature",{'size': 15 })

    plt.ylabel("Month",{'size': 15 })

    #axes.set_axis_labels("Mean Temperature", "Month")

    plt.show()

    fig.savefig('d:\python\out\joyplot.pdf')

    安装joypy包

    (base) C:\Users\Administrator>pip install joypy

    Collecting joypy

    Downloading joypy-0.2.2-py2.py3-none-any.whl (8.3 kB)

    Requirement already satisfied: scipy>=0.11.0 in c:\users\administrator\appdata\r

    oaming\python\python37\site-packages (from joypy) (1.5.1)

    Requirement already satisfied: pandas>=0.20.0 in c:\users\administrator\appdata\

    roaming\python\python37\site-packages (from joypy) (1.0.5)

    Requirement already satisfied: numpy in c:\anaconda3\lib\site-packages (from joy

    py) (1.19.0)

    Requirement already satisfied: matplotlib in c:\anaconda3\lib\site-packages (fro

    m joypy) (3.3.0)

    Requirement already satisfied: python-dateutil>=2.6.1 in c:\anaconda3\lib\site-p

    ackages (from pandas>=0.20.0->joypy) (2.7.3)

    Requirement already satisfied: pytz>=2017.2 in c:\anaconda3\lib\site-packages (f

    rom pandas>=0.20.0->joypy) (2018.5)

    Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.3 in c:\an

    aconda3\lib\site-packages (from matplotlib->joypy) (2.2.0)

    Requirement already satisfied: cycler>=0.10 in c:\anaconda3\lib\site-packages (f

    rom matplotlib->joypy) (0.10.0)

    Requirement already satisfied: pillow>=6.2.0 in c:\anaconda3\lib\site-packages (

    from matplotlib->joypy) (7.2.0)

    Requirement already satisfied: kiwisolver>=1.0.1 in c:\anaconda3\lib\site-packag

    es (from matplotlib->joypy) (1.0.1)

    Requirement already satisfied: six>=1.5 in c:\anaconda3\lib\site-packages (from

    python-dateutil>=2.6.1->pandas>=0.20.0->joypy) (1.11.0)

    Requirement already satisfied: setuptools in c:\anaconda3\lib\site-packages (fro

    m kiwisolver>=1.0.1->matplotlib->joypy) (40.2.0)

    Installing collected packages: joypy

    Successfully installed joypy-0.2.2

    (base) C:\Users\Administrator>

    展开全文
  • 原标题:核密度图的绘制我们先看一下别人家文章中的核密度图。 那么,怎么做出这样的图呢?这种核密度图到底想表达或表现什么呢?核密度图的绘制所谓“眼过千遍不如手过一遍”,数据我们这里用Wikipedia文中的这6个...

    原标题:核密度图的绘制

    我们先看一下别人家文章中的核密度图。

    bb5adfed76f9eeae79177ef693ba2368.png

    那么,怎么做出这样的图呢?这种核密度图到底想表达或表现什么呢?

    核密度图的绘制

    所谓“眼过千遍不如手过一遍”,数据我们这里用Wikipedia文中的这6个数: −2.1, −1.3,−0.4,1.9,5.1,6.2。我们用ggplot2绘制这6个数的核密度图(两种方法,代码对应下图的p1和p2)、直方图和密度图的组合比较(下图p3),与其“镜像翻转”数列“相加”后新数列的密度图(下图p4,橙色)。代码如下:

    > library("ggplot2", lib.loc="~/R/win-library/3.4")

    > x

    > x

    [1] -2.1 -1.3 -0.4 1.9 5.1 6.2

    # 载入数据

    > p

    > p1

    > p1

    # 第一种画法,利用geom_density()画的核密度图,“面积”可填充颜色(见下图,p1)。这里的adjust用来调整bw(带宽),数值为默认值的倍数。这里geom_density()默认的核函数为Gaussian,关于带宽的解释见下文。

    > p2

    > p2

    # 第二种画法,方法相类似,最后的结果与p1一致,只是不能填充颜色(下图p2)。

    > p3

    +geom_line(stat ="density",adjust=0.55,color="red",size=1)+xlim(-5,10)

    > p3

    # 同样的数据,用geom_histogram()画直方图作比较,某种意义上可为bw的调整做参考。

    > m

    > z

    > n

    > data

    > data

    m n

    1 1 -8.3

    2 1 -6.4

    3 1 -2.3

    4 1 2.3

    5 1 6.4

    6 1 8.3

    7 2 -2.1

    8 2 -1.3

    9 2 -0.4

    10 2 1.9

    11 2 5.1

    12 2 6.2

    > p1

    > w1

    > p4

    # 将x这列数据乘以负1,从顺序颠倒后与x相加,生成z,z和x组成数据框,绘制分组核密度图,见p4。本文对图表主题,文字不做调整,调整方法见上一篇文章《ggplot2绘图学习笔记分享》,这里不再赘述。

    99d4e7824d6445f46c8578686088df35.png

    KDE 简介

    核密度估计(kernel density estimation,KDE)是根据已知的一列数据(x1,x2,…xn)估计其密度函数的过程,即寻找这些数的概率分布曲线。我们最常见的密度函数莫过于正态分布(也称高斯分布)的密度函数:

    dae1bf904ca0637f8b75daf4bd869476.png

    而密度估计就是给定一列数据,分布未知的情况下估计其密度函数。

    例如上文的6个数据:c(x1 = −2.1,x2 = −1.3, x3 = −0.4, x4 = 1.9, x5 = 5.1, x6= 6.2),我们看下这列数据的“密度”如何。

    画频率直方图就是一种密度估计的方法(如下图,组距为2),这里的“密度”(density)可以感性得理解为一个区间(直方图的组距)内数据数量的多少,右图即为这6个数据的密度曲线(这里简称为密度图),它是左图的外轮廓化,数据量越多,直方图的顶点也越接近一条线。

    aa24c51e1c5ffe1e8ad54b7563ca8998.png

    https://en.wikipedia.org/wiki/

    直方图和密度图都是一组数据在坐标轴上“疏密程度”的可视化,只不过直方图用条形图显示,而密度图使用拟合后的(平滑)的曲线显示,“峰”越高,表示此处数据越“密集”。“密度”越高,如下图。

    8883185b546b4b16742d385171c35e9b.gif

    https://en.wikipedia.org/wiki/

    “核”与“带宽”

    核密度估计是用用下面的函数去估计一个分部未知的独立样本的分布:

    其中K,也就是“核”(kernel)表示核函数,部分常见的核函数如下图(看到Gaussian的函数是不是觉得很眼熟?另为,R中的kernel 有"gaussian","epanechnikov","rectangular","triangular","biweight","cosine","optcosine")。

    34263efc1f2ed3dadd8b4dc7f4de0eef.png

    公式里的“h”,被称为“带宽” (bandwidth,也写作bw),为平滑参数,可简单理解为直方图的“组距”,带宽越大曲线越平滑,见下图。

    67d05d4a22885fe32c7e65bf6f073020.png

    小结

    核密度估计实际上是表现一组数据的分布情况,转录组中用来展示所有样本基因的表达量丰度分布,将FPKM取对数后替换本文第1部分绘图的数据,即可画出样本中所有基因表达量的分布图。一般情况下,它可用来比较某个样本跟其它样本间的差异。

    当然,也可以用于其他的数据分布的分析,除了箱型图,还可考虑核密度图。

    想学ggplot2作图的童鞋可以点击“阅读原文”到在线课堂看周老师的视频教程,每个视频都可下载课件和数据。今天的就到这里啦,若觉得本文还不错要记得分享哦~

    参考文献:

    Hebenstreit, Daniel, et al. "RNA sequencing reveals two major classes of gene expression levels in metazoan cells."Molecular systems biology7.1 (2011): 497.

    Shah, Sohrab P., et al. "The clonal and mutational evolution spectrum of primary triple-negative breast cancers."Nature486.7403 (2012): 395-399.返回搜狐,查看更多

    责任编辑:

    展开全文
  • MATLAB二维核密度估计

    2016-01-26 15:53:16
    MATLAB实现的二维核密度估计。 输入平面样本点,得到概率密度函数。 2D Kernel Density Estimation。
  • 绘制一个三维三组分的等密度图,能够设置各种参数,利用matlab的isosurface函数
  • 基本步骤如下: (1)首先打开ArcScene,添加相应的栅格图像 (2)打开数据的图层属性:  选择符号系统选项卡,在右侧选择已...效果如下:    转载于:https://www.cnblogs.com/lettet/p/4413617.html

    基本步骤如下:

    (1)首先打开ArcScene,添加相应的栅格图像

    (2)打开数据的图层属性:

           选择符号系统选项卡,在右侧选择已分类项对数据进行分类处理(选择合适的分类数、截断值、颜色)

           选择基本高度选项卡,选择在自定义表面上浮动,并在下拉框中选择合适的数据源,确定。

    (3)在菜单栏的视图中选择场景属性项,选择常规选项卡,在垂直夸大中设置一个合适的数值(本次试验设置0.000001,也可以使用基于范围计算)点集确定即可完成。 

    效果图如下: 

            

    转载于:https://www.cnblogs.com/lettet/p/4413617.html

    展开全文
  • 分析了以圆滑约束最小二乘法为核心的反演程序,并通过实例验证了三维密度电法正、反演计算方法的正确性、准确性,三维立体成的直观性。该方法提高了对矿井老空区分布范围及富水性的探测能力,为控制矿井突水事故...
  • 绘制 直方图和核密度图

    千次阅读 2021-01-11 22:38:25
    直方图和核密度图 1 pandas 方法 import pandas as pd import matplotlib.pyplot as plt # 不能漏掉.pyplot data=pd.read_csv(r’C:\01Pylearn\data_for_analysis\table4-3.csv’, sep=’,’, engine=‘python’, ...

    直方图和核密度图

    1 pandas 方法
    import pandas as pd
    import matplotlib.pyplot as plt # 不能漏掉.pyplot
    data=pd.read_csv(r’C:\01Pylearn\data_for_analysis\table4-3.csv’, sep=’,’, engine=‘python’, encoding=‘utf-8’)
    #分割符错误会导致问题
    data
    data.Age.plot(kind=‘hist’, bins=20, color=‘blue’, edgecolor=‘black’, density= True, label= “直方图”) # normed不再使用,更新为density
    data.Age.plot(kind=‘kde’, color = ‘red’, label=‘核密度图’)
    plt.xlabel(‘年龄’)
    plt.ylabel(‘核密度’)
    plt.title(‘年龄分布图’)
    plt.legend()
    #中文符号显示问题
    plt.rcParams[‘font.sans-serif’]=[‘SimHei’]
    plt.show()
    在这里插入图片描述
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns

    data =pd.read_csv(r’C:\01Pylearn\data_for_analysis\table4-3.csv’, sep=’,’, engine=‘python’, encoding=‘utf-8’)
    data
    Age_Male= data.Age[data.Sex==‘male’]
    Age_Male_dropna=Age_Male.dropna() #需要清理没有数据的

    Age_Female= data.Age[data.Sex==‘female’]
    Age_Female_dropna=Age_Female.dropna()

    sns.distplot(Age_Male_dropna, bins=20, kde= False, hist_kws = {‘color’:‘blue’}, label=‘男性’)
    sns.distplot(Age_Female_dropna, bins=20, kde= False, hist_kws = {‘color’:‘red’}, label=‘女性’)

    plt.title(‘年龄分布图’)
    plt.legend()
    #中文符号显示问题
    plt.rcParams[‘font.sans-serif’]=[‘SimHei’]
    plt.show()

    sns.distplot(Age_Male_dropna,hist= False, kde_kws = {‘color’:‘blue’, ‘linestyle’:’-’},norm_hist= True,label=‘男性’)
    sns.distplot(Age_Female_dropna,hist= False, kde_kws = {‘color’:‘blue’, ‘linestyle’:’–’},norm_hist= True,label=‘女性’)
    plt.title(‘年龄核密度图’)
    plt.legend()
    #中文符号显示问题
    plt.rcParams[‘font.sans-serif’]=[‘SimHei’]
    plt.show()

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 基于密度的点云聚类算法可以识别三维点云物体,也可以对三维点云去噪处理。 本文研究了两种基于密度的点云聚类方法,先简单介绍一下两种算法,后面会详细的介绍算法原理以及效果。第一种方法叫做密度减法聚类功能:...
  • R语言绘制二维密度图

    2021-05-10 09:59:55
    R语言绘制二维密度图维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示...
  • 核密度

    2018-12-17 10:43:08
    简单地讲,核密度估计是对直方的一个自然拓展 https://blog.csdn.net/unixtch/article/details/78556499 这个链接是对核密度介绍比较详细的一篇文章,可以先去看一下,主要讲了从直方到...
  • Py之seaborn:数据可视化seaborn库(二)的组合图可视化之密度图/核密度图分布可视化、箱型图/散点图、小提琴图/散点图组合可视化的简介、使用方法之最强攻略(建议收藏) 目录 二、组合图可视化 1、密度图、...
  • matlab三维散点画法

    万次阅读 2017-08-02 12:12:08
    软件版本:MATLAB R2016a.使用scatter3()函数画散点。初始数据进行处理之后,写入新的文本文档中,每行的数据类型为%d %d %d %f中间以空格分离。...本文主要关注如何快速高效地画出大量数据点的三维散点
  • 核密度估计

    2014-04-23 16:03:17
    用matlab实现对6个样本点实现直方估计、高斯核密度估计
  • 参考前文:R绘图笔记 | R语言绘图系统与常见绘图函数及参数前面,介绍过散点绘制,也介绍了柱状的绘制。本文介绍直方核密度估计的绘制。1.直方直方是数值数据分布的精确图形表示...
  • 11第一部分是一个三维的彩色KDE估计(最好用MATLAB画);第二部分是测试图片的运动目标二值图像检测结果(运动员用白色像素,背景用黑色)
  • 参考url: ...密度评估器是一种利用D数据集生成D概率分布估计的算法,GMM算法用不同高斯分布的加权汇总来表示概率分布估计。核密度估计(kernel density estimation,KDE)算法将高斯混合理念扩展...
  • 直方 实例:nutshell包的births2006.smpl数据集,包含了2006年美国出生人口的数据的10%样本,每一条记录有13个变量。使用数据集前,需通过install.packages(“nutshell”)安装并加载。 以美国出生人口数据为例,...
  • 非参数估计:核密度估计KDE

    万次阅读 多人点赞 2016-12-14 11:38:46
    http://blog.csdn.net/pipisorry/article/details/53635895核密度估计Kernel Density Estimation(KDE)概述密度估计的问题由给定样本集合求解随机变量的分布密度函数问题是概率统计学的基本问题之一。解决这一问题的...
  • ▲实景城市三维管理平台功能模块 关注公众号“三维前沿”,了解和体验实景三维管理平台。 三维GIS常用功能 包括场景漫游与导航、图层控制、上标绘、表面量算、三维模型管理、图层符号化渲染等功能。 01 场景漫游...
  • GIS实验之制作核密度分析

    万次阅读 多人点赞 2020-05-03 18:05:08
    问题描述:基于这些数据制作餐饮模式。 实验步骤 01 ArcMap打开和查看数据 由1可以看出中间部分餐饮服务较多,因此以中间部分为研究区域,进行研究与分析。 1 打开行政区域数据与餐饮服务数据 ...
  • 公众号后台回复“图书“,了解更多号主新书内容作者:宁海涛来源:DataCharm前面介绍了基础直方的绘制教程,接下来,同样分享一篇关于数据分布的基础图表绘制-核密度估计。具体含义...
  • 在ArcScene中,对栅格数据进行拉伸处理,就可以显示出三维的效果。如果我想把这种效果放到Web端分享给别人怎么办?CityEngine 2012新增了发布Web场景的功能,可以通过本地的Web Scene Viewer打开,也可以发布到...
  • 三维散点:Python 之matplotlib篇

    万次阅读 2016-11-09 17:06:08
    散点应该是我们做可视化时候接触到的第一个图形,无论是在R语言还是在Python的可视化图形里面,默认的方法都是采用散点的,比如下面这样:   这是R语言默认plot函数直接就画出来的散点。   很多时候,虾...
  • 核密度估计大作业KDE

    2020-05-21 16:00:42
    东华大学机器学习核密度估计大作业 第一部分是一个三维的彩色KDE估计(最好用MATLAB画);第二部分是测试图片的运动目标二值图像检测结果(运动员用白色像素,背景用黑色)
  • 本文介绍高斯核密度估计和Ep核密度估计两种核模型算法: 1、 Epanechnikov 核函数介绍 核密度估计是在概率论中用来估计未知的密度函数,属于非参数检验方法之一,由Rosenblatt (1955)和Emanuel Parzen(1962)...
  • MATLAB-高斯核密度估计

    热门讨论 2010-03-25 09:12:10
    主要用MATLAB编写的核密度估计方法,采用的核是高斯核!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,177
精华内容 4,870
关键字:

三维核密度图