QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3347|回复: 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图的绘图代码。
    + Q- [+ Q( J9 v; Z+ [4 l; z
    , R" L5 u* n1 PR语言|绘制二维直方图
      \9 o2 [' `4 `( E2 k9 H对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    & `4 v; V4 f# u5 p; T2 C
    2 i+ V9 q1 P2 @2 `5 [1.先绘制基础的散点图;0 ?: |# c$ Q! O1 N9 p" P! m. g
    ##二维直方图
    ) |, h1 W4 b, ~" P# Library: B5 Y: ?- s* S% b1 y% c  d
    library(tidyverse)
    : I) P4 j( k6 ^2 a8 Q( p7 Wlibrary(ggplot2)
    . O! S# p' r" `6 B& u/ j
    ) b0 M( J) \+ S2 F* C5 p3 V' t# 读取数据) v' _9 g( _! `3 l' N; ~6 W
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    4 g9 w  H/ S* `1 t* J- ]% Rb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )9 m& s' \# L9 w$ O: Y
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )0 X0 x( k: E  w
    data <- rbind(a,b,c)
    ( A$ j' J  E: l- e8 W
    7 Y/ a' m4 b& F0 E( i#绘制基础的散点图
    . d0 k, r# N6 N4 e8 Xggplot(data, aes(x=x, y=y) ) +
    % j/ \( _% K' M# k% H3 G. N0 {  geom_point()
    : Z1 b- L" `; n0 C5 O; N# z$ o
    * h" R$ t; @4 P
    . F' p% i, `% e1 y' M; r- s9 O6 @" |1 g: Y
    2.绘制二维直方图。
    $ V3 l, h4 C8 p: o: |; M####二维直方图可使用geom_bin2d()函数绘制
    ( |6 F" A. t; J3 e6 W/ `& ^#二维直方图默认选项$ |$ d0 ?+ @5 D9 V: I9 t$ X" ]: Y
    ggplot(data, aes(x=x, y=y) ) +& ?9 Q3 j+ m: l) V% C/ H' Y4 S
      geom_bin2d() +
    . v" F4 x. m4 o, C  theme_bw()# X  B) O- h, B& Q9 Y& j
    ; Y) h) `5 [: x$ C2 z: z
    # Bin大小控制与调色板3 w$ M2 M& r; m! z, V6 P/ \
    ggplot(data, aes(x=x, y=y) ) +
    1 A# I( R: r; Q$ \# J2 ~( x  geom_bin2d(bins = 70) +9 K) p  `; G6 }  R# p  @6 i
      scale_fill_continuous(type = "viridis") +3 t0 [. i' N! s& m: r! f: V3 z. t- p
      theme_bw()' C& J, @( v6 ]5 l. p
    0 _" j; J" L* h) S0 |, D- K7 N

      t4 z4 x" m' S& E

    R语言|绘制Hexbin图

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

    9 M% L: @6 b0 L. |5 K
    # Packages0 z9 M0 }+ D- @' M& e) ]- E% T
    library(hexbin)2 @2 Q9 c% P- N( D0 G+ e* j
    library(RColorBrewer)
    % c& A0 H9 A: g
    ' T$ `5 @/ y. i! h7 D# Create data
    . e( O  K: G/ Z5 N$ m- Ux <- rnorm(mean=1.5, 5000)1 r( q0 y9 \/ F% f+ f  c
    y <- rnorm(mean=1.6, 5000) 6 P9 V6 Q5 Z$ v% p2 q5 @
    & B; `7 Q  C1 {) _( I
    # Make the plot) J, K/ D* h6 K" ?
    bin<-hexbin(x, y, xbins=40)
    3 X1 c7 n) W0 Z( b# b/ o( B% |, t; omy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    2 ]5 W  ?5 W! \plot(bin, main="" , colramp=my_colors , legend=F )
    % R5 F6 n6 H  C1 e% U
    0 Q( R9 y8 J' j$ {- o' q
    6 Z7 q. B0 a4 r! i" y+ p) u: t) [) `' x
    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 07:07 , Processed in 0.534505 second(s), 51 queries .

    回顶部