QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2913|回复: 0
打印 上一主题 下一主题

R语言绘制二维密度图

[复制链接]
字体大小: 正常 放大

1178

主题

15

听众

1万

积分

  • TA的每日心情
    开心
    2023-7-31 10:17
  • 签到天数: 198 天

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-29 10:55 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。8 k# P4 Q! `; B7 g( ?
    * U6 }7 `( D' T' V- T
    R语言|绘制二维直方图
    . R: G, G) E) i7 i( b对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    * @( I5 W" O( R) b% j
    & s9 ^" X+ _9 i) T& H6 `1.先绘制基础的散点图;
    7 _! u7 y- Y6 R( w+ D##二维直方图
    / f2 \6 i: U! f8 n3 a1 i# Library
    6 x$ k6 t( a+ {% ylibrary(tidyverse)
    & U0 @. _4 D. i7 W1 c4 \library(ggplot2)" P$ H# T1 w. r6 A* Q
    9 O7 M( m: C) k9 ~' R/ `
    # 读取数据9 g+ {  P  ?0 ?6 @
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    6 a3 R* c! p. M3 L% mb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )' S' }/ d( I2 e
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    " q  H: w+ w& n" U) m) y6 adata <- rbind(a,b,c)
    : f6 U( g1 B5 l
    1 T3 _/ R. B6 }9 _0 T0 V#绘制基础的散点图
    $ C" z, O  [4 e3 K7 G$ @ggplot(data, aes(x=x, y=y) ) +; \' [9 b8 t( B( Y$ T! a
      geom_point()
    9 G- z+ S, j; B6 y; V1 o' p6 Z
    5 i2 o* g+ S  r6 r. a) e
    # W! W2 E, L9 |! d; s
    ; E% `& u' D7 G7 j* N$ p2.绘制二维直方图。5 n# b+ ~# N& h& B
    ####二维直方图可使用geom_bin2d()函数绘制! Q' F) o  D- y+ o* D
    #二维直方图默认选项
    " _5 E# s+ f5 w! b/ |% `. Jggplot(data, aes(x=x, y=y) ) +% E3 P$ O8 O* v: n
      geom_bin2d() +
    * K4 t- r: u' s4 K& o- o1 l  theme_bw()
    ) U# F9 J3 C! M; ^9 f1 e+ M9 U! ~
    " N4 l+ g2 A  g3 m0 E! v5 M! t# Bin大小控制与调色板
    6 b+ l& H# ^: C# B3 T& Yggplot(data, aes(x=x, y=y) ) +
    6 l8 T- c( u$ `# @1 U) @% B. W  geom_bin2d(bins = 70) +
    ( q; d" t: P' A  scale_fill_continuous(type = "viridis") +; T2 M% C3 L& V+ q$ U
      theme_bw()
    % G6 J4 j" D0 h
    ( s3 W2 Q7 }6 X& n$ @* [6 D
    ' b, Y2 F5 ?$ ~( |2 {* m

    R语言|绘制Hexbin图

    当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。


    / j- a: _4 x- a+ g. `, `# Packages5 R, l. U$ d3 k" p
    library(hexbin)1 z4 X% K+ ]6 J3 z4 W, @& T
    library(RColorBrewer) 3 K$ E$ h; e2 K) S
    ( [8 N) s2 J, l
    # Create data) [# Z$ J. F" L& k$ }
    x <- rnorm(mean=1.5, 5000)( W6 k# o' Q) u% T1 P! v, ?  t3 n
    y <- rnorm(mean=1.6, 5000)
    9 N* C+ f! n: \8 p" A* L# t2 P! W
    # Make the plot. l" @' y8 b5 z2 D, j! W+ Y; }
    bin<-hexbin(x, y, xbins=40)" q0 Q& ]+ H0 ]8 o( w4 D
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    ) L6 r. R$ s! o3 t8 O( |plot(bin, main="" , colramp=my_colors , legend=F )
    % g3 G) Q" t! ~' b7 r
    - _; p# v" k9 ]0 s8 W9 ]% ?* @
    8 L. g; p# Z. g8 d  j# `) `* @# I
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-7-28 08:29 , Processed in 0.409625 second(s), 50 queries .

    回顶部