QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2881|回复: 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图的绘图代码。
    2 ~+ I+ k( H% B9 q+ \$ G" e& s3 G( l/ ^
    R语言|绘制二维直方图& [# ]! x' }0 F( v) c8 Q3 l- B0 W
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    , ~: z7 u7 Q; H( @+ n7 N( r
    + h! K" Y  Z5 o7 f1 j2 u1 ^$ ^2 u1.先绘制基础的散点图;" z! `2 X; Z7 `- o# ^- T( y1 ~
    ##二维直方图; N3 w+ c5 j9 n. p, R- d
    # Library, {3 `, @- b2 _0 P' W/ r1 W6 z
    library(tidyverse)
    ! J9 }; z: h8 b( x  Mlibrary(ggplot2)  ]2 `; D4 k, X$ P& D0 @4 \

    6 C  e; Z, S8 Y# 读取数据
    ! k8 }4 T1 _4 l' @1 ia <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    , \# U7 a( ^) R( `/ vb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    8 i. j0 c. d" o2 H: qc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    5 [9 |! b: J6 Sdata <- rbind(a,b,c)% T! j: @3 z+ i& H4 v

    1 Q$ @# g$ w5 h, z$ D, w1 h#绘制基础的散点图3 {3 Y3 K$ _! A! w
    ggplot(data, aes(x=x, y=y) ) +1 \( m6 ^8 w+ o/ J3 a
      geom_point()1 ^% K. P7 a0 E) ?* e/ W* k$ h
    8 W) K  U0 P0 `. _

    ' T% y, p$ @! r$ d" |( \7 c" J5 g# _% Y& g
    2.绘制二维直方图。( k  o/ N, g9 {4 s5 @
    ####二维直方图可使用geom_bin2d()函数绘制
    6 O. o* o5 O- k( s* I$ H#二维直方图默认选项
    ' \. `" Y6 k6 l4 W, H! y( Xggplot(data, aes(x=x, y=y) ) +# i* w7 w2 L; M4 G" Q  G3 }6 f
      geom_bin2d() +: R$ @9 ]* @4 s# l  M; ?
      theme_bw()- P  C6 s+ k9 H+ m" M3 k

    # G+ l( N3 E, I# Bin大小控制与调色板- [8 n. Y# k2 k! q: W( a
    ggplot(data, aes(x=x, y=y) ) +
    5 o' R8 z; ^7 m  geom_bin2d(bins = 70) +. y0 X7 P! a6 C5 o5 J
      scale_fill_continuous(type = "viridis") +
    7 r9 H' t' w& J7 j9 U  theme_bw()2 x" F0 P6 J' Y" y& T$ f

    ) O0 X+ H5 |* A# E2 s1 A
    * V' G) l: n! Q  S$ D

    R语言|绘制Hexbin图

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

    ; R  g! K& v. e6 ?
    # Packages, @8 V: C# I* f: o* d
    library(hexbin)
    4 ~; B! ~, _$ Flibrary(RColorBrewer)
    . q1 |" w* m1 [" x, Y% ^, d8 o: v1 C( T/ X; I0 x( ~# E$ [
    # Create data
    7 L+ d4 o! M  x  l2 s7 X7 }x <- rnorm(mean=1.5, 5000)
    ! V2 c% E% r# n5 vy <- rnorm(mean=1.6, 5000) 2 f7 }: D8 ~$ v2 e; h5 U$ s
    : r! c( K$ c) R% F
    # Make the plot
    8 g6 ]5 [; y/ pbin<-hexbin(x, y, xbins=40)
    $ Y9 G5 N: J) j& E& P; q, cmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))- U1 p3 ?' `# ?2 i* X/ v" p% u: P
    plot(bin, main="" , colramp=my_colors , legend=F )
    # R6 J" o) c; h# E+ M/ ~7 |9 J) |/ g( o8 V
    ) c0 l, \* a9 q+ \
    0 A0 m8 |& B& b$ v) {8 e9 B. V
    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, 2025-7-16 22:40 , Processed in 0.575820 second(s), 50 queries .

    回顶部