QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3350|回复: 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 v8 R$ i9 B. R# q& w0 z/ x# H
    ( T3 V) _% S1 ^, QR语言|绘制二维直方图9 J6 H5 ^% S( M; q% O- K1 i
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。" s6 Z3 C* j2 Q

    6 \5 }5 W. G$ [. o( S: ^& q) G1.先绘制基础的散点图;
    3 v' E' z  r' l6 @! M8 r# j3 O##二维直方图) H0 \$ ], `4 e7 O9 m
    # Library! t" g9 ~) E' Q, X& Q; u
    library(tidyverse)9 K$ X" O4 H- J7 a
    library(ggplot2)
    0 C4 A* X0 k* B, |  y* g; M
    ' t: l8 \$ u* j1 x6 z5 t" u6 J# 读取数据
    $ t% e) D$ M6 {a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    + W3 [$ n4 g  [: z4 s6 W0 Kb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )- h* e9 j& v  [# B" H  Z! H3 g
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )4 k. f* m% W: ]- S2 p, X
    data <- rbind(a,b,c)
    $ J! T0 L5 X* U) R
    . b; y6 X( ~3 D#绘制基础的散点图& ^# o. H: G  C' e1 O6 l
    ggplot(data, aes(x=x, y=y) ) +3 ?3 s- Y7 }' t1 l- V- F; ~( n% `
      geom_point()
    ( W* l1 Y$ C( D" }: {, U- p1 L2 D* B7 J' R$ C
    / @1 d% j0 l% c& I; X* m
    5 K6 Q4 |5 s9 A: v0 i# H3 {# I
    2.绘制二维直方图。, c! D9 p. @7 j* n0 f* B; ]
    ####二维直方图可使用geom_bin2d()函数绘制! S" m) Q' f6 a5 a( j" p$ ^$ a
    #二维直方图默认选项( Z/ m3 B! u6 X1 n/ Z
    ggplot(data, aes(x=x, y=y) ) +
    . s  R* [* _0 W$ U& Y8 ^1 F& n  geom_bin2d() +. _5 ~( C0 M0 D  m& i; l8 @1 s
      theme_bw()0 q$ ~/ [. {. |

    - `4 X0 H- o0 J7 Y6 H2 F9 u# Bin大小控制与调色板: ?# h" m  z; E& i) _' ?+ k
    ggplot(data, aes(x=x, y=y) ) +/ ~4 t% s3 m% ]/ ^
      geom_bin2d(bins = 70) +
    0 D# s5 C8 Z: m9 r. P3 |  scale_fill_continuous(type = "viridis") +
    9 A& `# A9 ~/ D0 F8 y  theme_bw()7 I+ V0 x' ?& H. G! o) C% V

    ) o6 d- o3 X0 @4 |
    , S' ]3 `6 O# M1 `

    R语言|绘制Hexbin图

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


    " U4 H  x) H9 n) c' ]# Packages1 `2 G/ a; ]% b- ?& H' I( c' U
    library(hexbin)
    9 f1 d4 s; r4 j4 }& O8 Ulibrary(RColorBrewer)
    ( o. W% Y) e# S/ c! {$ W" b% t# G& U1 a  S$ m. j" b6 }" h$ \
    # Create data7 X+ G% Z0 Q: }( q
    x <- rnorm(mean=1.5, 5000)
    ' W  G  t, t4 j7 q4 j) X' o4 ky <- rnorm(mean=1.6, 5000) 4 |$ e/ }! C# _/ H4 E5 J( X" c% \1 n

    ( h* k4 j2 v" H* C7 S# Make the plot
    + U6 K* x2 ~$ {2 }3 G1 S6 l7 Hbin<-hexbin(x, y, xbins=40)
    2 Q1 {+ {) H2 y1 X7 R2 h& M5 Q% ^my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))3 ?: p; S# g4 C
    plot(bin, main="" , colramp=my_colors , legend=F )
    , W; J5 P' v1 `
    " d4 f- X9 d! B/ |5 y5 i2 O
    ) e; l. e( y% F& Q6 }4 A. w6 y$ z0 c' K! B$ ~5 |2 Y
    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 17:05 , Processed in 0.396706 second(s), 50 queries .

    回顶部