QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3300|回复: 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图的绘图代码。
    5 m) b7 {1 ?3 o8 ~
    1 u" |0 C/ o6 g; VR语言|绘制二维直方图
    0 D- M1 N: n/ |  s9 ?: R- K  ]5 R对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    " b) q' G3 w1 e7 b$ k+ f) C5 V
    & D6 N; ~8 b! ^  a1.先绘制基础的散点图;1 Z/ N/ ^; }; l) }; t; M8 U5 a
    ##二维直方图
    ) c7 ]9 J/ n$ F2 J" }# Library, G, o" T/ R, c3 s, I9 ]2 b
    library(tidyverse)
    ; q4 A+ w9 |* A# r$ q. U5 Flibrary(ggplot2)
    0 O" \. ?( |) [" F- e
    4 m! E4 q6 P7 a" U( @$ Q2 |$ A1 @# S# 读取数据
    % v3 W  r+ P) H# f! H6 x- d8 n7 qa <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) ); ]4 p# H8 `+ q+ O( n6 e
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    3 r1 i9 R. l/ a, ^4 [0 @, d/ nc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    ) u8 x2 j% ]* w2 j" O& m+ E. Mdata <- rbind(a,b,c)8 n* X/ a! N! H2 O1 z4 K8 C% L7 @
    , y4 u1 t( i9 d6 I$ {+ d' ^4 ]( J
    #绘制基础的散点图! ?: p5 v1 w9 `) a* J
    ggplot(data, aes(x=x, y=y) ) +8 u( `/ H1 f' n: i
      geom_point()
    ! @% k( z5 d- ?4 W: }( C) x0 G9 B; q# D% [! }8 B* ^

    . P+ P; G* J2 Y/ B, O4 k: }8 `* v3 M3 E; k. P# ?
    2.绘制二维直方图。
    7 }; m2 W6 ~+ u/ S- @####二维直方图可使用geom_bin2d()函数绘制5 R0 ]+ S  X" ^. a
    #二维直方图默认选项1 F# {, b0 y2 Q. m7 \% `
    ggplot(data, aes(x=x, y=y) ) +- @! F4 n  }  U5 Z. r0 r. p1 _
      geom_bin2d() +
    6 J  [2 P/ W+ @) Z% v) H8 E/ j  theme_bw()1 l) ?8 U! j% Q) j1 i

    ! m% T3 Q5 q- y0 _# Bin大小控制与调色板
    . {" D7 p3 H, Oggplot(data, aes(x=x, y=y) ) +
    2 P, D# z4 A; U- ?  geom_bin2d(bins = 70) +0 Q4 }5 u* d; g6 ]7 T  o7 ~
      scale_fill_continuous(type = "viridis") +
      ?; j& z3 Q+ r' f$ l: ?3 z  theme_bw()9 q2 A/ L# Z, k

    * `. k+ N1 k8 |6 o0 B4 l
    % a) L( l2 U5 k

    R语言|绘制Hexbin图

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

    ! P0 V/ r" ^# ~: B8 n# k
    # Packages
    5 @/ }2 G" S: H& ]) g' G0 m) ilibrary(hexbin)7 `, H& D6 A7 O/ u$ N7 }
    library(RColorBrewer)
    . i* W0 @; M2 t$ w( I+ m
    0 _3 \$ w' N4 Q4 S: }* Z6 o# Create data
    / H/ m; ?0 Z: M: H. t+ F3 N" v) f* hx <- rnorm(mean=1.5, 5000)" P/ {* g  J5 N
    y <- rnorm(mean=1.6, 5000)
    2 [7 n" a  w" X6 l+ ~& E: d. i# w, |4 C
    # Make the plot* M7 }! F: H4 D  }5 l2 A2 n3 @
    bin<-hexbin(x, y, xbins=40)
    5 K0 b5 c1 }; S# S4 Gmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))7 O$ t+ [! ~( g' F) ~
    plot(bin, main="" , colramp=my_colors , legend=F )
    - T0 Y, E! q/ |# s1 ]! a* s' o
    1 q+ E+ \7 F' Q" d9 q1 Y9 ]4 m2 _, f$ i& s
    5 Z2 o( i) e' c0 d+ h7 t( w4 k
    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-6-28 18:47 , Processed in 0.419886 second(s), 51 queries .

    回顶部