QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3421|回复: 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图的绘图代码。$ \* o& E6 d  k+ x8 `# i8 }
    8 y  E9 e/ N4 t( I1 G9 [% s" a) `
    R语言|绘制二维直方图
    , L. A% W( L; H8 \% I3 Y; i对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    , |3 `3 r+ `' i- E
    7 O9 m& Y0 U4 j; E/ [7 c. e! L+ C! o1.先绘制基础的散点图;
    2 U: S+ j& }2 U2 O+ M' f0 T##二维直方图
    ; z0 r6 e; G4 i+ {% h( O: u" H- I# Library# Z8 d3 Q0 J. S: A6 D6 f' n
    library(tidyverse)+ ]5 T9 w8 a- p4 _0 x* G
    library(ggplot2)
    & I, \% X; s, ]5 ^' Y
    # y2 X* B' K, O# 读取数据  q9 K9 _) `: v) E9 v* j- i/ V
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    + o$ Y2 b+ \" |$ X/ ]! U  ^; |b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    6 [# }1 t, j  Q1 N; ac <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )9 d3 ^/ i2 ^" r
    data <- rbind(a,b,c)! m- n4 ~8 w8 j. z/ Q8 y: ?% X7 x9 H

    8 C2 }, Q+ f- l2 C#绘制基础的散点图8 M2 b/ f0 E+ @  ~1 ~/ o3 i
    ggplot(data, aes(x=x, y=y) ) +6 |% m* X$ j5 ~! Y
      geom_point(). C6 i& U+ i* T: n( }" O

    # ]$ Y% E" a; T" S* Z$ V" Q2 q4 m1 T
      U# X) H" {' }; J; L* j  ^% A
    2.绘制二维直方图。
    % Y5 h& e( n: b- Z! f####二维直方图可使用geom_bin2d()函数绘制
    1 r! t$ ^( h) Q#二维直方图默认选项
    . ~9 e$ F+ X5 _) ~ggplot(data, aes(x=x, y=y) ) ++ D7 ^# E7 Q1 ]$ {
      geom_bin2d() +
    ' v/ ?8 e, E5 C- q  theme_bw()% I' }5 o9 `; `
    * C$ Y% C7 h) n
    # Bin大小控制与调色板( n% @* m) K$ {0 t0 d
    ggplot(data, aes(x=x, y=y) ) +
    / P0 _/ h8 c+ ^' r  geom_bin2d(bins = 70) +% J7 y; g. z- E% i
      scale_fill_continuous(type = "viridis") +& h: m) k2 Z) q
      theme_bw()
    9 j6 L$ ~0 X7 J; ]  V; X/ v+ x# }4 S3 S7 \3 s3 H$ p
    % a' }% G1 V2 x& P9 R0 R

    R语言|绘制Hexbin图

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


    ! ^! k6 W0 M6 \1 \# Packages8 R  ?# j2 G% p7 s
    library(hexbin)
    / p0 E; I4 l7 p0 elibrary(RColorBrewer)
    6 r# n$ T0 B, X3 V; ]% v) j; c0 i/ i' ^
    % R0 d' }3 |) S# Create data& Y# z7 I2 G) P; U
    x <- rnorm(mean=1.5, 5000)
    ( H! N. A% L# a4 Oy <- rnorm(mean=1.6, 5000)
    7 R7 ~6 k6 y2 J7 N/ _5 i$ Z$ m" P
    $ Z/ D. W) [) I% k# Make the plot
    . P) K* K! Y" a. @- ybin<-hexbin(x, y, xbins=40)
    ! x5 }9 C# \$ _: r  hmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))9 B* p& ?% S) Y  l. v7 C+ O
    plot(bin, main="" , colramp=my_colors , legend=F )
    4 V7 N) O% N6 M' r& ^- _! v6 M
    + i- H4 @3 l5 H3 f7 n' {
    0 Y& ?7 \( S9 I. h0 D2 a
    3 S7 D$ F6 S8 \& E) U5 u" j
    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-9-5 08:45 , Processed in 0.479144 second(s), 50 queries .

    回顶部