QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3589|回复: 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图的绘图代码。. Q3 Q! }# |3 [5 E+ E! P

    4 E* [' i0 K; O( XR语言|绘制二维直方图
    6 ^6 q$ e( u5 [7 H& U对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    6 x9 K9 N0 t" Y1 o( b- U$ l( i! }( w) [' I2 \
    1.先绘制基础的散点图;: _* ]' U; I. h  O; q$ `
    ##二维直方图, T" S* a+ |) |7 I8 w* r% L
    # Library* `5 n6 x8 {& m* D
    library(tidyverse)) N# C0 c% u8 L6 P2 e9 f
    library(ggplot2)
    # n  O$ w  |8 f' B; T0 C# y* z* ^2 a. `0 X4 H6 y; J" z9 f
    # 读取数据
    % m4 a8 E! }4 J& o' ~a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    / ]7 u( Y2 M' b( Ib <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    & K; y, l0 N" g8 \$ }2 v1 l8 ]c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    & n" i# z1 M9 A/ @' I2 h0 ldata <- rbind(a,b,c). T/ M1 S4 }3 u" Q
    - o. o8 w; B5 I0 k8 d
    #绘制基础的散点图- g6 c: i$ x/ H  r3 m$ O6 l
    ggplot(data, aes(x=x, y=y) ) +
    , |+ ~* K! s( y  geom_point()
    5 R' p) o" P: G; U% |- X9 z( c. c" [% ]0 l0 A3 P
    ; J! {. ?# s( D8 w; @; ]# U1 r

    ! M1 v# |# c% Y$ a" k2.绘制二维直方图。
    ; I& c, L& a: T1 T/ N####二维直方图可使用geom_bin2d()函数绘制/ a4 J' m4 }- K7 N8 B
    #二维直方图默认选项
    4 w) o* c+ X  y1 Rggplot(data, aes(x=x, y=y) ) +  J5 ?+ F% U6 X# G/ Z* N1 m5 u
      geom_bin2d() +
      d+ k4 `3 K* E& [) t  theme_bw()6 _3 H* J& A+ P$ H& H. H. p

    7 U" K. v1 t6 j5 ~) b1 f4 S# Bin大小控制与调色板
    : C* t+ y& k: o4 j9 k1 U5 Nggplot(data, aes(x=x, y=y) ) ++ f: k" h; \/ n6 c( m& T7 _8 A
      geom_bin2d(bins = 70) +  W5 P2 ~6 o9 c/ p1 l
      scale_fill_continuous(type = "viridis") +
    4 D; B& a. m; Y7 x  n# O" O3 d  theme_bw()
    * _% ?2 b4 R# e9 H2 e
    2 p/ R# h  a5 X0 c# s9 h6 Q0 s" O, Q( S% b( o' T, ?

    R语言|绘制Hexbin图

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

    8 n6 W3 h* q. |& ^7 }5 \3 h
    # Packages" o) n$ U$ E4 s
    library(hexbin)
    ' M7 f' `, Y; w% [library(RColorBrewer) 8 D3 l# b8 Q9 e. z

    * c$ R5 N* s* Q6 f% R( Z0 R' j7 ~# Create data
      Z7 j" P/ F0 z$ V0 \2 R% `x <- rnorm(mean=1.5, 5000)% S6 }' W: n( c5 t. K$ P
    y <- rnorm(mean=1.6, 5000) 3 ?$ ]% N% W! F0 s' H* o( n5 M% j( `
    8 @; D, V3 T3 f# j7 h! a
    # Make the plot9 C, r( ~9 s. V6 ?9 H: e  }
    bin<-hexbin(x, y, xbins=40), ^5 `  R# s0 M2 j# Q
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    . o7 p% s3 B& g& ~4 Oplot(bin, main="" , colramp=my_colors , legend=F )
    % ?; r6 h% `- K2 c$ l: [# S8 A* G1 W
    / y0 O* b. R2 Y: e& a( X0 l
    4 Y3 b' ]+ K" W% f
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    fastpost qq
    收缩
    • 电话咨询

    • 04714969085

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-10-31 15:11 , Processed in 0.205102 second(s), 50 queries .

    回顶部