QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3236|回复: 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图的绘图代码。/ P6 H1 ]9 G/ u( A1 d  M5 g

    9 W7 @2 \+ @7 ]& iR语言|绘制二维直方图
    0 D+ E9 }. f4 p* O  Z- S对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。$ ], j& t7 Z1 o2 ~

    7 F0 g4 P/ r1 k, i, ~6 x1.先绘制基础的散点图;
    $ u0 y7 {& Y2 {##二维直方图/ B0 H0 A4 `& H& v4 N
    # Library) Q. L# d6 {4 ~  m6 X2 l
    library(tidyverse)4 m! Q6 m1 Q: L* k& o
    library(ggplot2)
    ' |9 _: s9 }* }2 O6 X. n! m4 J# L. x3 ^8 ?4 c4 o3 c, T! _9 u7 T
    # 读取数据
    2 k5 a6 N' V+ I) k) na <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    8 O" j" q2 e3 V2 {/ f8 Z+ w4 \6 vb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )/ v0 n, ~) X. e
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    " M, i6 M' k" ?) ^, Ldata <- rbind(a,b,c)! s: c% Y* t) V/ N7 |# w  j+ ^
    $ i7 w9 R8 L, U: x  M2 ?
    #绘制基础的散点图
    0 l, d* v3 }8 Y0 R* O( B, l- nggplot(data, aes(x=x, y=y) ) +
    & ^/ A5 `" r  s3 b5 I! b7 I  geom_point()
    2 _" y+ `) ?8 @  A. Z. _1 S3 c4 e5 {, E
    # z. H! j, ?, b: H% p7 Q# R

    ( Z! j1 }# z' l1 Q1 ]% ]2.绘制二维直方图。
    ) g( N1 T5 H; K6 @& H  X####二维直方图可使用geom_bin2d()函数绘制
    3 p3 Z9 T; m4 E6 s# V5 Y- c, @3 b#二维直方图默认选项
    6 w; {* O8 r) |; K0 v6 d: ]ggplot(data, aes(x=x, y=y) ) +  G- V4 n: U$ v" g  ]! j
      geom_bin2d() +5 W# ~: a5 Q' [' ~" Y$ S; x5 }& c
      theme_bw()
    . }1 h$ c. I% h* ?' I: f4 p9 A) r; R5 P( _5 w1 @2 |4 F# ?
    # Bin大小控制与调色板
    - P/ N8 C6 W% w8 k/ j! |ggplot(data, aes(x=x, y=y) ) +' _% @7 l7 `$ E6 [' t1 J! L
      geom_bin2d(bins = 70) +, x* [- Z, l8 \
      scale_fill_continuous(type = "viridis") +; w1 v; f3 @5 ?, x& L  L3 F' U& m
      theme_bw()
    1 ~5 l* ?: ^/ W& d* z! w3 g
    / H; E/ u6 t9 m$ s& V4 `; a+ y; J9 \3 {0 u

    R语言|绘制Hexbin图

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


    7 I, H6 a( Z! A$ q6 L1 W, C# Packages: A. o8 C4 \, y1 U' x) ?  A6 K
    library(hexbin)% P' u  B' K9 S+ i# w# Y
    library(RColorBrewer)
    & m/ E3 S9 a2 [) @+ O5 G3 _; h* d: u% A
    # Create data
    , k4 K7 z3 ]% tx <- rnorm(mean=1.5, 5000)
    2 x( S, r; x6 L5 j% u) Sy <- rnorm(mean=1.6, 5000) ! d2 ^8 q4 Z0 ^& M+ x3 r; E

    ( w0 |/ Z/ Q, v/ P5 r7 q0 _# ]# Make the plot
    / X# y. n0 A8 h& _bin<-hexbin(x, y, xbins=40)
    4 q( g$ g: T- s+ z( i+ Tmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral'))), n$ L9 E: Q& R' @
    plot(bin, main="" , colramp=my_colors , legend=F ) ; `) y/ U% C; X' t% m7 B) b
    8 Q) W# V5 p( M
      h& O! m1 h' ?1 l: ^9 P& ], L) `9 B

    * |3 L# `: r- o( E3 H7 n
    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-4-11 23:39 , Processed in 0.385760 second(s), 51 queries .

    回顶部