QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3344|回复: 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图的绘图代码。
    ; t3 e" o5 w; f
    ' ^+ x! D3 P# S: }9 I* L. oR语言|绘制二维直方图: v( D. x. ~8 U" ^8 y
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。" `4 U/ D6 t* e  [

    : L# A8 r6 n8 a  D# z3 [1.先绘制基础的散点图;& h) [; F3 z' ~
    ##二维直方图& [/ n1 h) ^7 ^. b2 ?5 k
    # Library  }3 W# g( ^( m. w7 e* H8 i
    library(tidyverse)- Z& [4 V( g4 y  U- ~. }
    library(ggplot2)
    ) [/ [2 q% {5 T! k  q3 g; \! f! X( F5 Z+ @  T# O
    # 读取数据) D( Q+ j7 ]% P1 h' s
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )* K( X2 k9 t/ l
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )' M5 C. U, R" ^
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )7 E6 J' _0 m, S# I
    data <- rbind(a,b,c)# w6 l  B  h7 ]# Q/ F
    * I; I6 @: o1 E. v3 @( N4 O2 y$ @6 {
    #绘制基础的散点图
    7 c9 \' m: w2 z% Nggplot(data, aes(x=x, y=y) ) +$ Q8 e6 m. }6 W: C
      geom_point()
    : X" U# R; X4 p/ y8 [
    / @7 x( ~5 P* q% U, H3 ^. M; k0 p* u& Z5 K1 u, K( t

    1 a9 H6 c  f/ ?0 c! _' q0 B) v2.绘制二维直方图。% [" W7 @7 M& C1 F! J6 c
    ####二维直方图可使用geom_bin2d()函数绘制
    - Q! u4 n5 s  x. [#二维直方图默认选项
    . ^: |7 J; V* j6 }* W6 |$ P- lggplot(data, aes(x=x, y=y) ) +7 k2 w- j0 y8 k8 g4 \
      geom_bin2d() +# I6 v' t! l+ R/ j
      theme_bw()
      b  h# p6 @* w: A& ]1 X: ~6 S7 Q9 C& p/ E- C
    # Bin大小控制与调色板
    * o+ G7 T0 e: A, Lggplot(data, aes(x=x, y=y) ) +
    : B4 b; @" T6 N% _$ w9 ^: I  geom_bin2d(bins = 70) +6 r0 E! W3 ]  ]* X( q/ b% Y9 \3 k3 j
      scale_fill_continuous(type = "viridis") +, n& z) y9 {; E  P4 _0 H1 ^
      theme_bw()
    , f, u" r/ a$ I" T* ], [) s
    1 H' b' c1 D4 _8 ]# y6 O3 U; f: ~  ?5 E6 r

    R语言|绘制Hexbin图

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

    ' X' f/ w1 J6 e" S: Q1 k1 C
    # Packages
    & [  b% H7 X( c6 h. g8 ?6 m7 vlibrary(hexbin)
    ) i1 x( ]: y2 ~, ~/ I$ Slibrary(RColorBrewer)
    3 U* ~  O% {2 l' ~0 H7 u" b. P9 g! ^4 {! v- @, w' {
    # Create data) ~( X1 ^% o- o: `, b/ x' m
    x <- rnorm(mean=1.5, 5000)
    7 s' t: }( y. Zy <- rnorm(mean=1.6, 5000) % ?3 ^* {- x1 v5 ]) S9 R

    5 a8 h4 \* f+ P) V9 M. e# Make the plot  I5 r9 D" ^) m2 r# G' h
    bin<-hexbin(x, y, xbins=40)
    / J0 q  x+ {- Mmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))4 ~4 V# X. {- T0 v1 [
    plot(bin, main="" , colramp=my_colors , legend=F )
    ; [& d  q9 m# R" P  Z8 \# u; G4 B) b
    , }/ M: h* b# U  u) f
    - W$ [+ k- e' P9 e
    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-21 21:23 , Processed in 0.418579 second(s), 50 queries .

    回顶部