QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3239|回复: 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图的绘图代码。/ T, X, B: ?, W7 L
    $ L6 T9 W! ?1 g4 O, Y' q
    R语言|绘制二维直方图/ g: B! t' S5 ]. G# B9 k# }
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。- Y  H$ F# e4 S

    $ M9 f4 L& E$ w0 c* V' C1.先绘制基础的散点图;9 w6 K6 j* O9 R% y2 D
    ##二维直方图
    " b6 X3 ], G2 H* T4 z& B9 \# Library
    ( R( s+ q( s3 g3 @* y5 S( j) Nlibrary(tidyverse)
    * S% a$ Q" z  a( t0 h$ Wlibrary(ggplot2)
    % O5 \5 E5 n% l2 K% t9 {$ a( O; R. t2 q+ P6 a1 h5 M0 a
    # 读取数据% U, T9 D6 s, x' r; L
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    1 n" A6 G2 _$ r2 yb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    ( O; m- {2 m; Qc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )" }8 s/ @9 v" k1 ?8 h
    data <- rbind(a,b,c)
    6 c* ~+ R0 F( U, ?, M5 E' U& j4 J6 n. D- P4 C/ n/ |
    #绘制基础的散点图
    8 m5 k7 H- e% X, M/ H9 V7 R1 O/ sggplot(data, aes(x=x, y=y) ) +
    : ^7 z+ E, [/ p0 z5 }& \$ b  geom_point()
    9 J! M1 S! |8 j8 P3 q7 T
    & n) {+ R+ e, L( M% S/ J
    2 g% d" ^5 A% ?  k& B. v
    0 u; j, g% _7 v5 E" ?, b2.绘制二维直方图。& F% c$ d) Y) i5 g* l+ }" J
    ####二维直方图可使用geom_bin2d()函数绘制% X7 k! H7 o1 u6 [1 U
    #二维直方图默认选项8 @# v# [9 t7 x( s( S! G# i
    ggplot(data, aes(x=x, y=y) ) +
    9 k- N# g  L% \7 t' ]  geom_bin2d() +5 t1 Q6 L1 t7 \7 T; u( Y2 Z
      theme_bw()
    $ Q* m+ O6 h9 V/ I- y6 m2 T- v1 h  x! o, n- W5 Q3 J# s3 B
    # Bin大小控制与调色板
    # y; B9 M9 ]- {. sggplot(data, aes(x=x, y=y) ) +$ N+ D: \7 o/ `
      geom_bin2d(bins = 70) +
    9 Y4 H* `, e& }1 m. v  scale_fill_continuous(type = "viridis") +8 [' e/ W' L+ T  a
      theme_bw()
    & f  ?* o. N, v" P
    $ m1 u2 p" s) a% I) m/ j6 k3 A
    ; V7 p" e0 Y, K3 Y- @( x. s, f/ ^

    R语言|绘制Hexbin图

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

    : j$ t/ |# g* i5 z
    # Packages$ Z/ F5 M( `# l9 T; g
    library(hexbin)7 s: b1 _7 N: I: Y, B. h0 J/ B
    library(RColorBrewer) 8 U) s/ p1 C- M. k6 T. k  E8 y
    ( R- h; y3 t& d. c  L
    # Create data! |: N, ~3 @1 y/ i1 r
    x <- rnorm(mean=1.5, 5000)
    ' u  w% c/ Q- r# m7 Wy <- rnorm(mean=1.6, 5000) ) _8 u* e- r+ r4 P
    - |& c3 |6 z) }
    # Make the plot
    ! f( W2 c. X1 _5 k! ]# J1 jbin<-hexbin(x, y, xbins=40)
    ) v- P, f: u; \, Rmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))2 c  S7 X; E% g0 z- ^
    plot(bin, main="" , colramp=my_colors , legend=F ) ( V* {4 Z5 }' H; G% b
    & t  }& ]% p) @

    ! v4 J( _7 u& _4 c/ P& Y& T& {5 E! S. |" [  P8 u% d
    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, 2026-4-13 22:36 , Processed in 0.418887 second(s), 50 queries .

    回顶部