QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3345|回复: 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图的绘图代码。
    * V$ \$ o( L+ p4 ~6 }7 g! X' _4 ~. G: z. [. f
    R语言|绘制二维直方图
    0 g0 z0 i/ m& g9 t9 n" P! O: W: u对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    1 p3 z8 N2 y$ r% v$ ]' y
      D$ K2 B+ x' G- e1.先绘制基础的散点图;
    ' K7 `! \9 \' ~. l3 x9 t##二维直方图6 Q% D4 ~: r, e7 U3 u1 ?
    # Library
    * ^8 n( c7 R; j% M4 O: Ulibrary(tidyverse)7 l* d4 k" M5 r$ \
    library(ggplot2)7 H( ]+ g* e/ @
    # h. s; `; S- C8 @* r+ g. U. S
    # 读取数据* l1 C  ~1 [: Z+ T0 C+ g& m( @
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )& M* D% H: u5 B, Q
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    3 m+ t0 O) ^8 ~/ ?  k& b" |: @: yc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    " Y' @; k$ F; R8 W( V8 ndata <- rbind(a,b,c); B. ^4 J1 E/ u# J7 L

    " [6 `* b# W  p  S3 }5 |#绘制基础的散点图6 d: l+ j! h) w9 N( {
    ggplot(data, aes(x=x, y=y) ) +. d, m1 ]  @' `1 {
      geom_point()
    + y" f1 r" w) n, N( C) l; G8 C8 r
    " f* k: }/ u" l/ b, d
    8 m2 a, R+ s9 V1 Q5 f: p
    2.绘制二维直方图。+ i% H  n) E9 w* _4 Q/ x: Y# f
    ####二维直方图可使用geom_bin2d()函数绘制
    $ Z8 T# H8 w. u  N4 a#二维直方图默认选项, ^- w* P8 ^5 n
    ggplot(data, aes(x=x, y=y) ) +- e7 N0 Y1 h/ h. Z, q
      geom_bin2d() +
    5 U. ^& I4 Z. G9 w4 l) N5 X  theme_bw()1 s- e3 D' h! m
    ' K8 H4 E# h! M% ?$ C# h: e
    # Bin大小控制与调色板
    9 i5 M3 T( N0 ~& Q& ]$ f; \6 @5 C: Tggplot(data, aes(x=x, y=y) ) +
    $ U2 A2 `: i% h8 g" x  geom_bin2d(bins = 70) +
    ( H+ h% b) T& Y4 P. X  scale_fill_continuous(type = "viridis") +
    , N2 |. R9 T' P" h+ j/ ^# x; P2 a  theme_bw()
    $ r0 W/ V8 Z) g5 P
    + R3 q' {" W" ~2 C" k9 ]4 D0 H' B$ x1 C2 K  E2 ?& J

    R语言|绘制Hexbin图

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

    . l; i0 M+ _# e3 [9 }, U" B
    # Packages
    : ?: _0 S1 W5 e& v, Ulibrary(hexbin)) c& H; v) I/ }$ N
    library(RColorBrewer) # M# I# e8 a1 b! a, c
    . U1 x2 V' N1 X, m4 h  I
    # Create data& p2 {: e' O: K: K/ |) Y- h. d$ X
    x <- rnorm(mean=1.5, 5000)* h; ^8 V+ k# ~6 z
    y <- rnorm(mean=1.6, 5000)
    & v: E  |  j0 i4 c- z6 c# t+ k
    3 `1 g) G3 ^2 ^" d) [# Make the plot6 g% i% j) t; H0 J) y2 b+ L3 t
    bin<-hexbin(x, y, xbins=40)) d! o% Q) t' M, c0 O
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))% A: i+ w* U2 u$ a, A0 Y
    plot(bin, main="" , colramp=my_colors , legend=F )
    9 [# S1 w5 e: V8 K9 D# ^/ M. o/ D  M, B/ i: o+ O
    ) ?" V/ j' V* a# g4 _
    ' ^) \$ ]3 x) a. f* ?- R' k& J! w
    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-7-22 00:47 , Processed in 0.275478 second(s), 51 queries .

    回顶部